Udostępnij za pośrednictwem


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

  • Od -14:00 do +14:00

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