SELECT Explanation, Example FROM Pro.Knowledge
FacebookRSS

Funkcje daty i czasu

Kolejną istotną grupą wbudowanych funkcji skalarnych są obiekty związane z przetwarzaniem typów danych daty i czasu.


YEAR ( data ), MONTH ( data ), DAY ( data ) – dokonują ekstraktu z daty, odpowiednio roku, miesiąca oraz dnia.

-- ekstrakt poszczególnych części daty
 
SELECT  YEAR ( '2013-02-12' ) as Rok,
        MONTH( '2013-02-12' ) as Miesiac,
        DAY  ( '2013-02-12' ) as Dzien

FN_datetime_01


Najczęściej stosowane funkcje zwracające date i czas systemowy to GETDATE() oraz SYSDATETIME(). Są to funkcje nie przyjmujące żadnych argumentów i zwracają po prostu bieżącą datę i czas systemowy.

-- funkcje zwracające aktualny czas i datę systemową
 
SELECT SYSDATETIME(), 
       SYSDATETIMEOFFSET(),
       GETDATE(),
       GETUTCDATE()

FN_datetime_02


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. Pełny ich opis znajdziesz tutaj. 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

-- DATEADD - dodawanie/odejmowanie jednostek określonego typu z zadanej daty
 
SELECT  DATEADD ( dd,-DAY( GETDATE()-1 ), GETDATE() ) as FirstDayCurrMonth,
	DATEADD ( dd,-DAY( GETDATE() ), GETDATE() ) as LastDayPrevMonth

FN_datetime_03


DATEDIFF ( datepart, startdate, enddate ) – różnica pomiędzy dwiema datami (end – start) wyrażona w jednostkach określonych przez datepart. Wiek pracowników :

USE Northwind
GO
 
-- DATEDIFF - określanie różnicy wyrażonej w konkretnych jednostkach 
-- pomiędzy dwiema datami
 
SELECT  FirstName, LastName, BirthDate, 	
	DATEDIFF ( yy , BirthDate , GETDATE() )  as Age
FROM dbo.Employees

FN_datetime_04


DATEPART( datepart, data ) – wyciąga określoną parametrem datepart, jednostkę podanej daty.

-- DATEPART - ekstrakt określonej części daty /czasu
 
SELECT  DATEPART( yy, GETDATE() ) as CurrentYear,
	DATEPART( mm, GETDATE() ) as CurrentMonth,
	DATEPART( dd, GETDATE() ) as CurrentDay,
	DATEPART( ww, GETDATE() ) as CurrentWeek

FN_datetime_05


DATENAME ( datepart, data ) – pododbna do DATEPART, zwraca wartość znakowa, określonej parametrem datepart, części daty w tym nazwę dnia tygodnia, miesiąca zgodnie z ustawieniami @@LANGID (bieżący język dla sesji)

SELECT  DATENAME(dw, GETDATE() ) as DzienTygodnia,
	DATENAME(mm, GETDATE() ) as Miesiac

FN_datetime_06


7 thoughts on “Funkcje daty i czasu

Leave a comment

Twój adres email nie zostanie opublikowany.

Uzupełnij równanie (SPAM protection) *