Udostępnij przez


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 daty i godziny, w tym użycie i przykłady.

Typy danych daty i godziny

W poniższej tabeli wymieniono typy danych daty i godziny Transact-SQL.

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 rrrr-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 programu SQL Server 2008 (10.0.x) aparat bazy danych uzyskuje wartości daty i godziny przy użyciu interfejsu GetSystemTimeAsFileTime() API systemu Windows. Dokładność zależy od sprzętu komputera i wersji systemu Windows, na którym działa wystąpienie programu SQL Server. To API ma precyzję ustaloną na 100 nanosekund. Użyj interfejsu API systemu GetSystemTimeAdjustment() Windows, aby określić dokładność.

Funkcja Składnia Wartość zwracana Zwracanie typu danych Determinizm
SYSDATETIME SYSDATETIME() Funkcja SYSDATETIME zwraca wartość datetime2(7) zawierającą datę i godzinę komputera, na którym jest uruchomione wystąpienie programu SQL Server. Zwrócona wartość nie obejmuje przesunięcia strefy czasowej. datetime2(7) Rodzaju
SYSDATETIMEOFFSET SYSDATETIMEOFFSET () Funkcja SYSDATETIMEOFFSET zwraca wartość datetimeoffset(7) zawierającą datę i godzinę komputera, na którym jest uruchomione wystąpienie programu SQL Server. Zwracana wartość zawiera przesunięcie strefy czasowej. datetimeoffset(7) Rodzaju
SYSUTCDATETIME SYSUTCDATETIME () Funkcja SYSUTCDATETIME zwraca wartość datetime2(7) zawierającą datę i godzinę komputera, na którym jest uruchomione wystąpienie programu SQL Server. SYSUTCDATETIME Zwraca wartości daty i godziny jako czas UTC (uniwersalny czas koordynowany). 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 Funkcja CURRENT_TIMESTAMP zwraca wartość typu data/godzina zawierającą datę i godzinę komputera, na którym jest uruchomione wystąpienie programu SQL Server. Zwrócona wartość nie obejmuje przesunięcia strefy czasowej. datetime Rodzaju
GETDATE GETDATE() Funkcja GETDATE zwraca wartość typu data/godzina zawierającą datę i godzinę komputera, na którym jest uruchomione wystąpienie programu SQL Server. Zwrócona wartość nie obejmuje przesunięcia strefy czasowej. datetime Rodzaju
GETUTCDATE GETUTCDATE() Funkcja GETUTCDATE zwraca wartość typu data/godzina zawierającą datę i godzinę komputera, na którym jest uruchomione wystąpienie programu SQL Server. Funkcja GETUTCDATE zwraca wartości daty i godziny jako czas UTC (uniwersalny czas koordynowany). datetime Rodzaju
CURRENT_DATE CURRENT_DATE Funkcja CURRENT_DATE zwraca wartość daty zawierającą tylko datę komputera, na którym jest uruchomione wystąpienie aparatu 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>, <number>, <date>, <origin>) Funkcja DATE_BUCKET zwraca wartość odpowiadającą początku każdego zasobnika daty i godziny z sygnatury czasowej zdefiniowanej przez parametr źródła lub domyślną wartość 1900-01-01 00:00:00.000 źródła, jeśli parametr źródła nie jest określony. Typ zwracany zależy od argumentu podanego dla daty. Rodzaju
NAZWA DATY DATENAME ( <datepart>, <date> ) Funkcja DATENAME zwraca ciąg znaków reprezentujący określoną część daty . nvarchar Rodzaju
DATEPART DATEPART ( <datepart>, <date> ) Funkcja DATEPART zwraca liczbę całkowitą reprezentującą określoną część daty. int Rodzaju
DATETRUNC DATETRUNC ( <datepart>, <date> ) Funkcja DATETRUNC zwraca datę wejściową obciętą do określonej części daty. Typ zwracany zależy od argumentu podanego dla daty. Rodzaju
DZIEŃ DAY ( <date> ) Funkcja DAY zwraca liczbę całkowitą reprezentującą część dnia określonej daty. int Deterministyczny
MIESIĄC MONTH ( <date> ) Funkcja MONTH zwraca liczbę całkowitą reprezentującą część miesiąca określonej daty. int Deterministyczny
ROK YEAR ( <date> ) Funkcja YEAR zwraca liczbę całkowitą reprezentującą część roku określonej 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 DATEFROMPARTS ( <year>, <month>, <day> ) Funkcja DATEFROMPARTS zwraca wartość daty dla określonego roku, miesiąca i dnia. date Deterministyczny
DATETIME2FROMPARTS DATETIME2FROMPARTS ( <year>, <month>, <day>, <hour>, <minute>, <seconds>, <fractions>, <precision> ) Funkcja DATETIME2FROMPARTS zwraca wartość datetime2 dla określonej daty i godziny z określoną dokładnością. datetime2(precyzja) Deterministyczny
DATETIMEFROMPARTS DATETIMEFROMPARTS ( <year>, <month>, <day>, <hour>, <minute>, <seconds>, <milliseconds> ) Funkcja DATETIMEFROMPARTS zwraca wartość daty/godziny dla określonej daty i godziny. datetime Deterministyczny
DATACZASCZAS, przesunięcie od części DATETIMEOFFSETFROMPARTS ( <year>, <month>, <day>, <hour>, <minute>, <seconds>, <fractions>, <hour_offset>, <minute_offset>, <precision> ) Funkcja DATETIMEOFFSETFROMPARTS zwraca wartość datetimeoffset dla określonej daty i godziny z określonymi przesunięciami i dokładnością. datetimeoffset(precyzja) Deterministyczny
SMALLDATETIMEFROMPARTS SMALLDATETIMEFROMPARTS ( <year>, <month>, <day>, <hour>, <minute> ) Funkcja SMALLDATETIMEFROMPARTS zwraca wartość smalldatetime dla określonej daty i godziny. smalldatetime Deterministyczny
CZAS Z CZĘŚCI TIMEFROMPARTS ( <hour>, <minute>, <seconds>, <fractions>, <precision> ) Funkcja TIMEFROMPARTS zwraca wartość czasu dla określonego czasu z określoną dokładnością. time(precision) Deterministyczny

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

Funkcja Składnia Wartość zwracana Zwracanie typu danych Determinizm
DATEDIFF DATEDIFF ( <datepart>, <startdate>, <enddate> ) Funkcja DATEDIFF zwraca liczbę granic daty lub godziny części daty przekroczonej między dwiema określonymi datami. int Deterministyczny
DATEDIFF_BIG DATEDIFF_BIG ( <datepart>, <startdate>, <enddate> ) Funkcja DATEDIFF_BIG zwraca liczbę granic daty lub godziny części daty przekroczonej między dwiema 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> ) Funkcja DATEADD zwraca nową wartość daty/godziny, dodając interwał do określonej części daty. Typ danych argumentu data Deterministyczny
EOMONTH EOMONTH ( <start_date> [ , <month_to_add> ] ) Funkcja EOMONTH zwraca ostatni dzień miesiąca zawierającego określoną datę z opcjonalnym przesunięciem. Typ return to typ argumentu start_date , lub alternatywnie, typ danych daty . Deterministyczny
OFFSET PRZEŁĄCZAJĄCY SWITCHOFFSET (<DATETIMEOFFSET>, <time_zone> ) Funkcja SWITCHOFFSET zwraca zmiany przesunięcia strefy czasowej wartości datetimeoffset i zachowuje wartość UTC. datetimeoffset z ułamkową dokładnością argumentu DATETIMEOFFSET Deterministyczny
DO DATY przesunięcie czasu TODATETIMEOFFSET (<expression>, <time_zone> ) Funkcja TODATETIMEOFFSET przekształca wartość datetime2 na wartość datetimeoffset . TODATETIMEOFFSET interpretuje wartość datetime2 w czasie lokalnym dla określonego time_zone. Datetimeoffset z ułamkową precyzją argumentu datetime Deterministyczny

Wskazówka

Aby uzyskać więcej informacji i zalecenia dotyczące manipulowania informacjami o strefie czasowej w programie SQL Server przy użyciu typu danych datetimeoffset, zobacz AT TIME ZONE (STREFA CZASOWA).

Funkcje ustawiające lub zwracające funkcje formatu sesji

Funkcja Składnia Wartość zwracana Zwracanie typu danych Determinizm
@@DATEFIRST @@DATEFIRST Funkcja @@DATEFIRST zwraca bieżącą wartość dla sesji .SET DATEFIRST tinyint Rodzaju
USTAW DATĘ NAJPIERW SET DATEFIRST { *number* } lub SET DATEFIRST { *@number_var* } Instrukcja SET DATEFIRST ustawia pierwszy dzień tygodnia na liczbę z zakresu od 1 do 7. Nie dotyczy Nie dotyczy
USTAW FORMAT DATY SET DATEFORMAT { *format* } lub SET DATEFORMAT { *@format_var* } Instrukcja SET DATEFORMAT określa kolejność części daty (miesiąc/dzień/rok) na potrzeby wprowadzania danych daty/godziny lub małych godzin. Nie dotyczy Nie dotyczy
@@LANGUAGE @@LANGUAGE Funkcja @@LANGUAGE zwraca nazwę języka w bieżącym używanym języku. @@LANGUAGE nie jest funkcją daty lub godziny. Jednak ustawienie języka może wpływać na wyniki funkcji daty. Nie dotyczy Nie dotyczy
JĘZYK USTALONY SET LANGUAGE { [ N ] '*language*' } lub SET LANGUAGE { *@language_var* } Ustawia środowisko językowe dla sesji i komunikatów systemowych. SET LANGUAGE nie jest funkcją daty lub godziny, ale ustawienie języka wpływa na dane wyjściowe funkcji daty. Nie dotyczy Nie dotyczy
sp_helplanguage sp_helplanguage [ [ *@language* = ] '*language*' ] Funkcja sp_helplanguage zwraca informacje o formatach dat wszystkich obsługiwanych języków. Ustawienie języka wpływa na dane wyjściowe funkcji daty. Nie dotyczy Nie dotyczy

Funkcje walidujące wartości daty i czasu

Funkcja Składnia Wartość zwracana Zwracanie typu danych Determinizm
ISDATE ISDATE ( <expression> ) Funkcja ISDATE określa, czy wyrażenie wejściowe data/godzina lub smalldatetime ma prawidłową wartość daty lub godziny. int Funkcja ISDATE jest deterministyczna używana tylko z funkcją CONVERT , gdy CONVERT parametr stylu jest określony, a gdy styl nie jest równy 0, 100, 9 lub 109.
Article Description
FORMAT Funkcja 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 Funkcje CAST i CONVERT konwertują wartości daty i godziny na i z literałów ciągu oraz innych formatów daty i godziny.
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.