Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
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 datowe i godzinowe.
- Typy danych datowych i godzin
- funkcje daty i godziny
- Funkcje zwracające wartości daty i czasu systemu
- Funkcje zwracające części daty i czasu
- Funkcje, które zwracają wartości daty i czasu ze swoich części
- Funkcje zwracające wartości różnicy daty i czasu
- Funkcje modyfikujące wartości daty i czasu
- Funkcje ustawiające lub zwracające funkcje formatu sesji
- Funkcje walidujące wartości daty i czasu
- Artykuły związane z datą i godziną
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. |
Artykuły związane z datą i godziną
| 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. |