Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL 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. |
Artykuły związane z datą i godziną
| 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. |