Blog JSystems - uwalniamy wiedzę!

Szukaj

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)

Baner szkolenia Kompleksowe SQL w Microsoft SQL Server w JSystems, terminy gwarantowane

Szkolenie Kompleksowe SQL w Microsoft SQL Server →

To szkolenie może być dofinansowane dla Ciebie z KFS lub BUR.

★★★★★Średnia ocena naszych szkoleń w Google: 5/5

Najczęściej zadawane pytania

Jak wyciągnąć rok, miesiąc lub dzień z daty w MS SQL Server?
Służą do tego funkcje YEAR, MONTH i DAY, które przyjmują datę i zwracają odpowiednio rok, miesiąc oraz dzień. Wywołujesz je pojedynczo dla wybranej wartości daty w zapytaniu.
Które funkcje zwracają bieżącą datę i czas systemowy?
Najczęściej stosuje się GETDATE oraz SYSDATETIME. Nie przyjmują żadnych argumentów i zwracają bieżącą datę i czas systemowy. Dostępne są też SYSDATETIMEOFFSET i GETUTCDATE.
Do czego służy funkcja DATEADD?
DATEADD dodaje lub odejmuje określoną liczbę jednostek daty lub czasu (dni, lat, miesięcy, minut) do zadanej daty. Jednostkę podajesz przez parametr datepart, pełną nazwą lub skrótem. Bywa użyteczna w warunkach filtrowania i przy wyznaczaniu zakresów dat.
Jak obliczyć różnicę między dwiema datami?
Używasz funkcji DATEDIFF, która liczy różnicę end minus start wyrażoną w jednostkach określonych przez datepart, na przykład w latach czy dniach. Podajesz jej jednostkę oraz datę początkową i końcową.
Czym różni się DATEPART od DATENAME?
DATEPART wyciąga określoną parametrem część daty i zwraca ją jako wartość liczbową. DATENAME działa podobnie, ale zwraca wartość znakową, na przykład nazwę dnia tygodnia lub miesiąca, zgodnie z ustawieniem bieżącego języka sesji.

Komentarze (0)

Musisz być zalogowany by móc dodać komentarz. Zaloguj się przez Google

Brak komentarzy...