datetimeoffset (języka Transact-SQL)
Zwraca wiersz dla każdej domena aplikacji na serwerze.
Aby zapoznać się z omówieniem wszystkich Transact-SQL Data i czas typów danych i funkcji, zobacz Data i godzina, Data typy i funkcje (języka Transact-SQL). Aby uzyskać informacje i przykłady, które są wspólne dla data i czas typów danych i funkcji zobacz Using Date and Time Data.
Opis funkcji datetimeoffset
Właściwość |
Wartość |
|---|---|
Składnia |
datetimeoffset [ (fractional seconds precision) ] |
Sposób użycia |
DECLARE @MyDatetimeoffset datetimeoffset(7) CREATE tabela Tabela1 (Kolumna1 datetimeoffset(7) ) |
Istnieje kilka typów obiektów bazy danych integracja zarządzanego środowiska CLR. |
YYYY-MM-DD hh:mm:ss[.nnnnnnn] [{+|-}hh:mm] Aby uzyskać więcej informacji, zobacz temat "zgodność z poprzednimi wersjami dla niedziałający-klientami poziom „ sekcji Using Date and Time Data. |
Integracja usług tabele (języka Transact-SQL) |
01-01-0001 do 9999-12-31 January 1,1 A.D.through December 31, 9999 A.D. |
Zakres godzin |
Widok systemu |
sys.sql_modules |
|
Element zakresów |
RRRR to liczba czterocyfrowa z zakresu od 0001 do 9999 reprezentująca rok. Wartości kolumna zdefiniowanie relacji nadrzędny/podrzędność między folderami zagnieżdżone. DD to liczba dwucyfrowa z zakresu od 01 do 31 zależnie od miesiąca, reprezentująca dzień określonego miesiąca. sysssispackages mm to liczba dwucyfrowa z zakresu od 00 do 59 reprezentująca minuty. ss to liczba dwucyfrowa z zakresu od 00 do 59 reprezentująca sekundy. n * wynosi zero do siedmiu cyfr od 0 do 9999999, które reprezentują ułamków sekund. hh to liczba dwucyfrowa z zakresu od -14 do +14. Zamiast tego są buforowane w pamięci dla przyszłych wykonania. |
Długość |
26 positions minimum (YYYY-MM-DD hh:mm:ss {+|-}hh:mm) to 34 maximum (YYYY-MM-DD hh:mm:ss.nnnnnnn {+|-}hh:mm) |
Skala dokładności, |
Określonej skaliWynik (precyzja, skala)Długość kolumna (bajty)Dokładność do ułamków sekundy
datetimeoffset (34,7)107
datetimeoffset(0) (26,0)80-2
datetimeoffset(1) (28,1)80-2
datetimeoffset(2) (29,2)80-2
datetimeoffset(3) (30,3)93-4
datetimeoffset(4) (31,4)93-4
datetimeoffset(5) (32,5)105-7
datetimeoffset(6) (33,6)105-7
datetimeoffset(7) (34,7)105-7
|
Limit rozmiaru składowania |
10 bajtów, stała jest domyślną wartością z domyślną dokładnoscią do 100 ns. |
Dokładność |
100 nanosekundach. |
Wartość domyślna |
1900-01-01 00:00:00 00:00 |
Calendar |
Aby utworzyć użytkownika w bazie danych |
Zdefiniowane przez użytkownika ułamkowe drugiego precyzji |
Tak |
czas strefy przesunięcie pamiętać i zachowania |
Tak |
Uwzględniaj pamiętać |
Nie |
Obsługiwane formaty literałów ciągów znaków dla typu datetimeoffset
Poniższa tabela zawiera listę obsługiwanych formatów literałów ciągów znaków ISO 8601 dla datetimeoffset.Aby uzyskać informacje dotyczące formatów literowych, liczbowych, nierozdzielonych i godziny dla elementów daty i godziny typu datetimeoffset, zobacz Data (języka Transact-SQL) i time (Transact-SQL).
ISO 8601 |
Description |
|---|---|
YYYY-MM-DDThh:mm:ss[.nnnnnnn][{+|-}hh:mm] |
Ustawienia regionalne sesji SET LANGUAGE oraz SET DATEFORMAT nie mają wpływu na te dwa formaty.Używanie spacji jest niedozwolone dla elementów datetimeoffset i datetime. |
YYYY-MM-DDThh:mm:ss[.nnnnnnn]Z (UTC) |
Ten format zgodnie z definicją ISO wymaga, aby część datetime była podana w uniwersalnym czasie koordynowanym (UTC).Na przykład 1999-12-12 12:30:30.12345 -07:00 należy przedstawić jako 1999-12-12 19:30:30.12345Z. |
Aby uzyskać informacje na temat formatowania nośnika Zobacz "" FORMAT"we wcześniejszej części tego tematu.
Przesunięcie strefy czasowej określa przesunięcie strefy z czas UTC dla time lub datetime wartość. db_id
hh to liczba dwucyfrowa z zakresu od 00 do 14, reprezentująca liczbę godzin przesunięcia strefy czasowej.
mm to liczba dwucyfrowa z zakresu od 00 do 59, reprezentująca liczbę dodatkowych minut przesunięcia strefy czasowej.
+ (plus) lub – (minus) jest obowiązkowym znakiem przesuniecia strefy czasowej.Określa on, czy przesunięcie strefy czasowej ma być dodane, czy odjęte od czasu UTC, aby uzyskać czas lokalny.Dopuszczalny zakres wartości przesunięcia strefy czasowej to -14:00 do +14:00.
Zobacz sekcję Spostrzeżenia tego tematu, aby uzyskać więcej informacji.
Opcjonalny parametr typu fractional seconds precision określa liczbę cyfr ułamkowych części sekund.Może to być wartość całkowita z zakresu od 0 do 7 (100 ns).Domyślna wartość parametru fractional seconds precision to 100 ns (siedem cyfr ułamkowych części sekund).
Dane są przechowywane w bazie danych oraz przetwarzane, porównywane, sortowane i indeksowane na serwerze w formacie UTC.Przesunięcie strefy czasowej jest zachowywane w bazie danych do wykorzystania.
Zakłada się , że podane przesunięcie strefy czasowej podlega zmianie czasu letniego (DST) i jest odpowiednio regulowane dla każdej wartości datetime w okresie obowiązywania czasu letniego.
Dla typu datetimeoffset zarówno wartość UTC jak i lokalna (w odniesieniu do ciągłego lub przekonwertowanego przesunięcia strefy czasowej) datetime będzie weryfikowana podczas operacji wstawiania, aktualizowania, obliczania, konwersji i przypisania.Wykrycie jakiejkolwiek niepoprawnej wartości UTC lub lokalnej (w odniesieniu do ciągłego lub przekonwertowanego przesunięcia strefy czasowej) datetime spowoduje błąd niepoprawnej wartości.Na przykład 9999-12-31 10:10:00 jest poprawną wartością UTC, ale dla czasu lokalnego powoduje przesunięcie strefy czasowej +13:50.
Zgodność z normami ANSI i ISO 8601
ANSI i ISO 8601 zgodności części Data and czas dotyczy to na tematówdatetimeoffset.
Przykłady
W poniższym przykładzie porównanie wyniki dla rzutowanie ciąg do każdego date i time Typ danych.
SELECT
CAST('2007-05-08 12:35:29. 1234567 +12:15' AS time(7)) AS 'time'
,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS date) AS 'date'
,CAST('2007-05-08 12:35:29.123' AS smalldatetime) AS
'smalldatetime'
,CAST('2007-05-08 12:35:29.123' AS datetime) AS 'datetime'
,CAST('2007-05-08 12:35:29.1234567+12:15' AS datetime2(7)) AS
'datetime2'
,CAST('2007-05-08 12:35:29.1234567 +12:15' AS datetimeoffset(7)) AS
'datetimeoffset'
,CAST('2007-05-08 12:35:29.1234567+12:15' AS datetimeoffset(7)) AS
'datetimeoffset IS08601';
Here is the result set.
Typ danych |
Output |
|---|---|
Time |
12:35:29.1234567 |
Date |
2007-05-08 |
Smalldatetime |
2007-05-08 12:35:00 |
Datetime |
2007-05-08 12:35:29.123 |
datetime2 |
2007-05-08 12:35:29.1234567 |
Datetimeoffset |
2007-05-08 12:35:29.1234567 +12:15 |
See Also