Blog JSystems - z miłości do programowania

Szukaj

Funkcje operujące na datach w MS SQL Server

YEAR ( data ), MONTH ( data ), DAY ( data )


Dokonują ekstraktu z daty, odpowiednio roku, miesiąca oraz dnia.


SELECT  YEAR ( '2015-01-01' ) as Rok, MONTH( '2015-01-01' ) as Miesiac, DAY  ( '2015-01-01' ) as Dzien;


45.png (633×198)


getdate() oraz sysdatetime()


Najczęściej stosowane funkcje zwracające date i czas systemowy. Są to funkcje nie przyjmujące żadnych argumentów i zwracają po prostu bierzącą datę i czas systemowy.


SELECT SYSDATETIME(), SYSDATETIMEOFFSET(), GETDATE(), GETUTCDATE();


46.png (673×228)


DATEADD ( datepart, liczba, data )


Dodaje (lub odejmuje) liczbę jednostek daty/czasu określonych za pomocą datepart np dni (day, dd, d), lat (years,yy,yyyy), miesięcy (month,mm,m), minut (minute,mi,n) etc. do zadanej daty. Jednostki określone mogą być za pomocą pełnej nazwy, lub skrótu. Stosowana często w warunkach filtracji, np. wszystkie zlecenia z ostatnich 14 dni. Funkcja dateadd, jest też bardzo użyteczna w określaniu zakresów.


SELECT  DATEADD ( dd,-DAY( GETDATE()-1 ), GETDATE() ) as FirstDayCurrMonth, DATEADD ( dd,-DAY( GETDATE() ), GETDATE() ) as LastDayPrevMonth;


47.png (863×176)


DATEDIFF ( datepart, startdate, enddate )


Oblicza różnicę pomiędzy dwoma datami (end – start) wyrażona w jednostkach określonych przez datepart. Ilość lat pomiędzy datą rozpoczęcia sprzedaży produktu a dniem dzisiejszym :


select  ProductID, Name, SellStartDate, datediff ( yy , SellStartDate , getdate() )  as RóżnicaLat from SalesLT.Product;


48.png (729×361)


DATEPART( datepart, data )


Wyciąga określoną parametrem datepart, jednostkę podanej daty.


select  datepart( yy, getdate() ) as AktualnyRok, datepart( mm, getdate() ) as AktualnyMiesiąc, datepart( dd, getdate() ) as AktualnyDzień, datepart( ww, getdate() ) as AktualnyTydzień;


49.png (634×233)


DATENAME ( datepart, data )


Funkcja pododbna do datepart, zwraca wartość znakową, określoną parametrem datepart, część daty w tym nazwę dnia tygodnia, miesiąca zgodnie z ustawieniami @@langid (bierzący język dla sesji)


select  datename( dw, getdate() ) as AktualnyDzieńtygodnia, datename( mm, getdate() ) as AktualnyMiesiąc;


50.png (694×171)

Przyjdź do nas na szkolenie z baz danych SQL Server! Mamy szereg szkoleń w ofercie: SQL, T-SQL, tuning, administracja i wiele innych. Sprawdź dostępne szkolenia SQL Server
Zapisz się do newslettera aby otrzymywać najnowsze świeżynki pojawiające się na blogu! Zapisz się do newslettera