Udostępnij za pomocą


Typy i funkcje danych datowych i godzin (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL database w usłudze Microsoft Fabric

Sekcje w tym artykule obejmują wszystkie Transact-SQL typy danych i funkcje datowe i godzinowe.

Typy danych daty i godziny

Transact-SQL typy danych datowych i godzinowych są wymienione w następującej tabeli:

Typ danych Format Zakres Dokładność Rozmiar pamięci masowej (bajty) Ułamkowa precyzja sekundowa zdefiniowana przez użytkownika Przesunięcie strefy czasowej
time HH:mm:ss[.nnnnnnn] 00:00:00.0000000 do 23:59:59.9999999 100 nanosekund 3 do 5 Tak Nie.
date yyyy-MM-dd 0001-01-01 do 9999-12-31 1 dzień 3 Nie. Nie.
smalldatetime rrrr-MM-dd HH:mm:ss 1900-01-01 do 2079-06-06 1 minuta 4 Nie. Nie.
datetime yyyy-MM-dd HH:mm:ss[.nnn] 1753-01-01 do 9999-12-31 0,00333 sekundy 8 Nie. Nie.
datetime2 rrrr-MM-dd HH:mm:ss[.nnnnnnnnn] 0001-01-01 00:00:00.0000000 do 9999-12-31 23:59:59.99999999 100 nanosekund 6 do 8 Tak Nie.
datetimeoffset yyyy-MM-dd HH:mm:ss[.nnnnnnnn] [+|-]HH:mm 0001-01-01 00:00:00.0000000 do 9999-12-31 23:59:59.99999999 (w UTC) 100 nanosekund 8 do 10 Tak Tak

Uwaga / Notatka

Typ danych Transact-SQL wersji wiersza nie jest datą ani godziną. timestamp to przestarzały synonim rowversion.

Funkcje daty i godziny

Poniższe tabele przedstawiają Transact-SQL funkcje daty i godziny. Aby uzyskać więcej informacji na temat determinizmu, zobacz Deterministyczne i Niedeterministyczne funkcje.

Funkcje zwracające wartości daty i czasu systemu

Transact-SQL wyprowadza wszystkie wartości daty i czasu systemu systemowego z systemu operacyjnego komputera, na którym działa instancja SQL Server.

Funkcje datowe i czasowe systemu o wyższej precyzji

Od SQL Server 2008 (10.0.x) silnik baz danych wyprowadza wartości daty i czasu za pomocą API Windows GetSystemTimeAsFileTime(). Dokładność zależy od sprzętu komputerowego oraz wersji Windows, na której działa instancja SQL Server. To API ma precyzję ustaloną na 100 nanosekund. Użyj API Windows GetSystemTimeAdjustment(), aby określić dokładność.

Funkcja Składnia Wartość zwracana Zwracanie typu danych Determinizm
SYSDATETIME SYSDATETIME ( ) Zwraca wartość datetime2(7) zawierającą datę i godzinę komputera, na którym działa instancja SQL Server. Zwrócona wartość nie obejmuje przesunięcia strefy czasowej. datetime2(7) Rodzaju
SYSDATETIMEOFFSET SYSDATETIMEOFFSET ( ) Zwraca wartość datetimeoffset(7) zawierającą datę i godzinę komputera, na którym działa instancja SQL Server. Zwracana wartość zawiera przesunięcie strefy czasowej. datetimeoffset(7) Rodzaju
SYSUTCDATETIME SYSUTCDATETIME ( ) Zwraca wartość datetime2(7) zawierającą datę i godzinę komputera, na którym działa instancja SQL Server. Funkcja zwraca wartości daty i czasu jako czas UTC (Czas Uniwersalny Skoordynowany). datetime2(7) Rodzaju

Funkcje datowe i czasowe systemu o niższej precyzji

Funkcja Składnia Wartość zwracana Zwracanie typu danych Determinizm
CURRENT_TIMESTAMP CURRENT_TIMESTAMP Zwraca wartość daty-czasu zawierającą datę i godzinę komputera, na którym działa instancja SQL Server. Zwrócona wartość nie obejmuje przesunięcia strefy czasowej. datetime Rodzaju
GETDATE GETDATE ( ) Zwraca wartość daty-czasu zawierającą datę i godzinę komputera, na którym działa instancja SQL Server. Zwrócona wartość nie obejmuje przesunięcia strefy czasowej. datetime Rodzaju
GETUTCDATE GETUTCDATE ( ) Zwraca wartość daty-czasu zawierającą datę i godzinę komputera, na którym działa instancja SQL Server. Funkcja zwraca wartości daty i czasu jako czas UTC (Czas Uniwersalny Skoordynowany). datetime Rodzaju
CURRENT_DATE CURRENT_DATE Zwraca wartość daty zawierającą jedynie datę komputera, na którym działa instancja silnika bazy danych. Wartość zwrotna nie obejmuje przesunięcia czasu i strefy czasowej. date Rodzaju

Funkcje zwracające części daty i czasu

Funkcja Składnia Wartość zwracana Zwracanie typu danych Determinizm
DATE_BUCKET DATE_BUCKET ( datepart, numer, data, pochodzenie ) Zwraca wartość odpowiadającą początkowi każdego kubełka daty-czas z znacznika czasu zdefiniowanego przez parametr początkowy , lub domyślnej wartości 1900-01-01 00:00:00.000 początkowej, jeśli parametr początkowy nie jest określony. Typ zwracany zależy od argumentu podanego dla daty. Rodzaju
NAZWA DATY NAZWA DATY ( datepart, data ) Zwraca ciąg znaków reprezentujący określoną datę w tej datie. nvarchar Rodzaju
DATEPART DATEPART ( datepart, date ) Zwraca liczbę całkowitą reprezentującą określoną część daty. int Rodzaju
DATETRUNC DATETRUNC ( datepart, date ) Zwraca datę wejściową obciętą do określonej części daty. Typ zwracany zależy od argumentu podanego dla daty. Rodzaju
DZIEŃ DZIEŃ ( randka ) Zwraca liczbę całkowitą reprezentującą dzień części podanego daty. int Deterministyczny
MIESIĄC MIESIĄC ( data ) Zwraca liczbę całkowitą reprezentującą miesiąc określonej daty. int Deterministyczny
ROK ROK ( data ) Zwraca liczbę całkowitą reprezentującą rok określony daty. int Deterministyczny

Funkcje, które zwracają wartości daty i czasu ze swoich części

Funkcja Składnia Wartość zwracana Zwracanie typu danych Determinizm
DATEFROMPARTS DATAFROMPARTS ( rok, miesiąc, dzień ) Zwraca wartość daty dla określonego roku, miesiąca i dnia. date Deterministyczny
DATETIME2FROMPARTS DATETIME2FROMPARTS ( rok, miesiąc, dzień, godzina, minuta, sekundy, ułamki, precyzja ) Zwraca wartość datetime2 dla określonej daty i godziny, z określoną precyzją. datetime2(precyzja) Deterministyczny
DATETIMEFROMPARTS DATETIMEFROMPARTS ( rok, miesiąc, dzień, godzina, minuta, sekundy, milisekundy ) Zwraca wartość daty-czas dla określonej daty i godziny. datetime Deterministyczny
DATACZASCZAS, przesunięcie od części DATATIMETIMEOFFFROMPARTS ( rok, miesiąc, dzień, godzina, minuta, sekundy, ułamki, hour_offset, minute_offset, precyzja ) Zwraca wartość datetimeoffset dla określonej daty i czasu, z określonymi offsetami i precyzją. datetimeoffset(precyzja) Deterministyczny
SMALLDATETIMEFROMPARTS SMALLDATETIMEFROMPARTS ( rok, miesiąc, dzień, godzina, minuta ) Zwraca wartość smalldatetime dla określonej daty i godziny. smalldatetime Deterministyczny
CZAS Z CZĘŚCI TIMEFROMPARTS (godzina, minuta, sekundy,ułamki, precyzja) Zwraca wartość czasu dla określonego czasu, z określoną precyzją. czas(precyzja) Deterministyczny

Funkcje zwracające wartości różnicy daty i czasu

Funkcja Składnia Wartość zwracana Zwracanie typu danych Determinizm
DATEDIFF DATEDIFF ( datepart, data, data zakończenia ) Zwraca liczbę granic datepart lub date, przekroczonych między dwoma określonymi datami. int Deterministyczny
DATEDIFF_BIG DATEDIFF_BIG ( datepart, data start, data końca ) Zwraca liczbę granic datepart lub date, przekroczonych między dwoma określonymi datami. bigint Deterministyczny

Funkcje modyfikujące wartości daty i czasu

Funkcja Składnia Wartość zwracana Zwracanie typu danych Determinizm
DATEADD DATEADD (datepart, number, date ) Zwraca nową wartość czasu daty, dodając przedział do określonej części daty. Typ danych argumentu data Deterministyczny
EOMONTH EOMONTH ( start_date [ , month_to_add ] ) Zwraca ostatni dzień miesiąca zawierający podaną datę, z opcjonalnym przesunięciem. Typ return to typ argumentu start_date , lub alternatywnie, typ danych daty . Deterministyczny
OFFSET PRZEŁĄCZAJĄCY PRZEŁĄCZANIE (DATATIMEOFFSET,time_zone ) SWITCHOFFSET zmienia przesunięcie strefy czasowej wartości DATETIMEOFFSET i zachowuje wartość UTC. datetimeoffset z ułamkową precyzją DATETIMEOFFSET Deterministyczny
DO DATY przesunięcie czasu TODATETIMEOFFSET (wyrażenie, time_zone ) TODATETIMEOFFSET przekształca wartość datetime2 w wartość datetimeoffset. TODATETIMEOFFSET interpretuje wartość datetime2 w czasie lokalnym, dla określonego time_zone. Datetimeoffset z ułamkową precyzją argumentu datetime Deterministyczny

Funkcje ustawiające lub zwracające funkcje formatu sesji

Funkcja Składnia Wartość zwracana Zwracanie typu danych Determinizm
@@DATEFIRST @@DATEFIRST Zwraca aktualną wartość dla sesji USTAW DATEFIRST. tinyint Rodzaju
USTAW DATĘ NAJPIERW USTAW DATEFIRST { number | @number_var } Ustawia pierwszy dzień tygodnia na liczbę z zakresu od 1 do 7. Nie dotyczy Nie dotyczy
USTAW FORMAT DATY SET DATEFORMAT { format | @format_var } Ustala kolejność części daty (miesiąc/dzień/rok) do wprowadzania danych datetime lub smalldatetime . Nie dotyczy Nie dotyczy
@@LANGUAGE @@LANGUAGE Zwraca nazwę języka używanego w tocznie. @@LANGUAGE nie jest funkcja datowa ani godzinna. Jednak ustawienie języka może wpływać na wyniki funkcji daty. Nie dotyczy Nie dotyczy
JĘZYK USTALONY USTAW JĘZYK { [ N ] 'język' | @language_var } Ustawia środowisko językowe dla sesji i komunikatów systemowych. USTAW JĘZYK nie jest funkcją datą ani godziną. Jednak ustawienie językowe wpływa na wyniki funkcji datowych. Nie dotyczy Nie dotyczy
sp_helplanguage sp_helplanguage [ [ @language = ] 'język' ] Zwraca informacje o formatach dat we wszystkich obsługiwanych językach. sp_helplanguage nie jest procedurą zapisaną datą ani godziną. Jednak ustawienie językowe wpływa na wyniki funkcji datowych. Nie dotyczy Nie dotyczy

Funkcje walidujące wartości daty i czasu

Funkcja Składnia Wartość zwracana Zwracanie typu danych Determinizm
ISDATE ISDATE ( wyrażenie ) Określa, czy wyrażenie wejściowe datetime lub smalldatetime ma prawidłową wartość data lub czasu. int ISDATE jest deterministyczny używany tylko z funkcją CONVERT, gdy parametr stylu CONVERT jest określony i gdy styl nie jest równy 0, 100, 9 lub 109.
Article Description
FORMAT Zwraca wartość sformatowaną przy użyciu określonego formatu i kultury opcjonalnej. Użyj funkcji FORMAT do formatowania daty/godziny i liczby jako ciągów jako znaków tekstowych uwzględniających lokalizację.
RZUCAJ i KONWERTUJ Dostarcza informacji o konwersji wartości daty i czasu na i z literali łańcuchowych oraz innych formatów dat i godzin.
Tworzenie międzynarodowych oświadczeń Transact-SQL Dostarcza wytyczne dotyczące przenośności baz danych i aplikacji bazodanowych, które używają Transact-SQL instrukcji z jednego języka do drugiego lub obsługują wiele języków.
Funkcje skalarne ODBC Dostarcza informacji o funkcjach skalarnych ODBC dostępnych do użycia w Transact-SQL instrukcjach. Zawiera funkcje daty i godziny ODBC.
W STREFIE CZASOWEJ Umożliwia konwersję stref czasowych.