Udostępnij za pośrednictwem


datetime (Transact-SQL)

Definiuje połączone z czas z ułamków sekund, oparty na zegarze 24-godzinnym data .

Ostrzeżenie

Użycie time, date, datetime2 i datetimeoffset typy danych dla nowej pracy.Te typy wyrównać SQL Standard.Są one bardziej poręczny.time, datetime2 i datetimeoffset dostarcza więcej sekund precyzji.datetimeoffsetzapewnia obsługę strefy czas globalnie wdrożonych aplikacji.

Przegląd wszystkich Transact-SQL data i czas typów danych i funkcji, zobacz Funkcje daty i godziny (Transact-SQL).Informacje i przykłady, które są wspólne dla data i czas typów danych i funkcji, zobacz Data i czas danych.

Opis elementu DateTime

Właściwość

Wartość

Składnia

datetime

Użycie

ZADEKLAROWAĆ @ MyDatetimedatetime

Tworzenie tabeli Tabela1 (Kolumna1 datetime )

Domyślny ciąg literału formatów

(używane dla niedziałający-poziom klient)

Nie dotyczy

zakresdat

1 Stycznia 1753 do 31 grudnia 9999

zakresczasu

00: 00: 00 do 23:59:590,997

zakresprzesunięcie strefy czasowej

Brak

Element zakresów

RRRR to cztery cyfry od 1753 do 9999, które reprezentują roku.

MM jest dwie cyfry od 01 do 12, które reprezentują miesiąca w określonym roku.

DD jest dwóch cyfr z zakresu od 01 do 31 w zależności od miesiąca, reprezentujące dzień miesiąca określony.

hh jest dwucyfrowe od 00 do 23, który reprezentuje godzinę.

mm jest dwucyfrowe od 00 do 59, która reprezentuje minuty.

ss jest dwucyfrowe od 00 do 59, która reprezentuje drugą.

n * jest od zera do trzech cyfr od 0 do 999, które reprezentują ułamków sekund.

Długość znaków

minimum pozycji 19 do 23 maksymalna

Limit rozmiaru dla składowania

8 bajty

Dokładność

Zaokrąglone do wielokrotności sekund.000,.003 lub.007

Wartość domyślna

1900-01-01 00:00:00

Calendar

Gregoriański (nie obejmuje pełny zakres lat.)

Zdefiniowany przez użytkownika ułamkowe drugiego precision

Nie

ŚWIADOME przesunięcie strefy czasowej i zachowania

Nie

Uwzględniaj pamiętać

Nie

Obsługiwane literału ciągu sprzedaży — formatuje elementu DateTime

W poniższej tabeli wymieniono formaty literału obsługiwany ciąg dla datetime.Z wyjątkiem dla ODBC datetimeliterały ciągówciąg są w znaki pojedynczego cudzysłowu ('), na przykład "string_literaL". Jeśli środowisko nie jest us_english, literały ciągów ciąg powinien być w formacie N 'string_literaL'.

Liczbowy

Opis

Formaty dat:

[0] 4/15 / [19] 96--(mdy)

[0] 4 - 15-[19] 96--(mdy)

4.15 [0].96 [19]--(mdy)

4 [0] / [19] 96/15--(myd)

15 / [0] 4 / [19] 96--(dmy)

15 / [19] 96 / [0] 4 – (dym)

[19], 96/15 / [0] 4 – (ydm)

[19], 96 / [0] 4/15--(ymd)

Formaty czasu:

14:30

14:30[:20:999]

14:30[:20.9]

4 am

4 PM

Można określić data dane z numeryczne miesiącu.Na przykład 20/5/97 reprezentuje dwudziestego maja 1997 r.W przypadku formatu liczbowego data Określ dzień, miesiąc i rok w ciąg , że używa kreska ułamkowa znaków (/), łączniki (-) i kropki (.) jako separatory.Ten ciąg musi pojawić się w następującej formie:

  • liczby separator liczb separatora numer czas]czas

Gdy język jest zestaw na us_english, to domyślna kolejność data mdy.Można zmienić kolejność data za pomocą USTAWIĆ format daty instrukcja.

Jak interpretować wartości data zależy do ustawienia USTAWIĆ format daty.Jeżeli zamówienie nie odpowiadają ustawieniom, wartości nie są interpretowane jako daty, ponieważ są one zakres lub wartości są błędnie zinterpretowana.Na przykład 10-12/08 mogą być interpretowane jako jeden z sześciu dat, w zależności od ustawień Format daty.Czteroczęściowym roku jest interpretowany jako rok.

Alfabetyczne

Opis

Kwi [il] [15] [,] 1996 r.

Kwi [il] 15 [,] [19] 96

Kwietnia 1996 r. [15] [il]

[15] Kwi [il] [,] 1996 r.

15 Kwietnia [il] [,] [19] 96

15 [19] 96 kwi [il]

[15] kwietnia 1996 r. [il]

KWIETNIA 1996 R. [IL] [15]

KWIETNIA 1996 R. [15] [IL]

Można określić data dane z określonego jako nazwa miesiąca pełnego miesiąca.Na przykład kwietnia lub skrót miesiąca kwi określonej w bieżącym języku; przecinki są opcjonalne i wielkość liter jest ignorowana.

Poniżej przedstawiono wskazówki dotyczące przy użyciu formatów data alfabetycznej:

  • Danych data i czas należy ująć w znaki cudzysłowu pojedynczego (').Dla języków innych niż angielski, należy użyć N'

  • Znaki, które są ujęte w nawiasy są opcjonalne.

  • Jeśli określisz tylko dwie ostatnie cyfry roku, mniej niż dwie ostatnie cyfry wartość wartości dwie cyfry roku odcięciaopcjakonfiguracja znajdują się w tym samym wieku jako rok odcięcia. Wartości większe niż lub równa wartości tej opcji są w wieku dostarczoną przed rokiem odcięcia.Na przykład jeśli dwie cyfry roku odcięcia jest 2050 (ustawienie domyślne), 25 jest interpretowana jako 2025 i 50 jest interpretowana jako 1950.Aby uniknąć niejednoznaczności, za pomocą czterech cyfr.

  • Jeśli brakuje dzień pierwszy dzień miesiąca jest dostarczany.

Ustawienie sesja USTAWIĆ format daty nie jest stosowana po określeniu miesiąca w formie alfabetycznej.

ISO 8601

Opis

RRRR-MM-DDThh:mm:ss [.mmm]

YYYYMMDDThh:mm:ss [.mmm]

Przykłady:

  • 2004-05-23T14:25:10

  • 2004-05-23T14:25:10.487

Aby użyć formatu ISO 8601, należy określić każdy element w formacie.Obejmuje to także T, dwukropek (:) i kropki (.) są wyświetlane w formacie.

Nawiasy kwadratowe wskazują ułamek drugi składnik opcjonalny.Składnik czas jest określony w formacie 24-godzinnym.

T oznacza rozpoczęcie część czas datetime wartości.

Korzyści w formacie ISO 8601 to jest międzynarodowym standardem ze specyfikacją jednoznaczny.Ponadto format ten nie dotyczy USTAWIĆ format daty lub Ustaw język ustawienie.

Nierozdzielone części

Opis

Ss RRRRMMDD [.mmm]

ODBC

Opis

{ts ' 1998-05-02 01:23:56.123 " }

{d ' 02-10-1990 r. " }

{t ' 13: 33:41 " }

ODBC API definiuje sekwencje unikowe do reprezentowania wartości data i czas , które ODBC wymaga danych sygnatury czasowej.Ten format sygnatury czasowej ODBC jest również obsługiwana przez definicja języka OLE DB (DBGUID -SQL) obsługiwany przez Microsoft OLE DB dostawca dla SQL Server.Aplikacje używające ADO, OLE DBi interfejsów API ODBC na podstawie tego formatu sygnatury czasowej ODBC można użyć do reprezentowania daty i godziny.

Sekwencje unikowe ODBC sygnatury czasowej są formatu: { literal_type 'constant_value' }:

  • literal_typeOkreśla typ sekwencji unikowej.Sygnatury czasowe mają trzy literal_type Specyfikatory:

    • d = tylko data

    • t = czas tylko

    • TS = sygnatury czasowej (czas + data)

  • 'constant_value" jest to wartość sekwencji unikowej.constant_valuenależy wykonać te formaty dla każdego literal_type.

    literal_typeconstant_value format
    d rrrr mm-dd
    t ss [.fff]
    usług terminalowych rrrr mm-dd: mm: ss [.fff]

Zaokrąglenie datetime dokładność ułamkową drugiego

datetimewartości są zaokrąglane do wielokrotności sekund.000,.003 lub.007, jak pokazano w poniższej tabela.

Wartość określona przez użytkownika

Wartość systemu przechowywane

01/01/98 23:59:59.999

1998-01-02 00:00:00.000

01/01/98 23:59:59.995

01/01/98 23:59:59.996

01/01/98 23:59:59.997

01/01/98 23:59:59.998

1998-01-01 23:59:59.997

01/01/98 23:59:59.992

01/01/98 23:59:59.993

01/01/98 23:59:59.994

1998-01-01 23:59:59.993

01/01/98 23:59:59.990

01/01/98 23:59:59.991

1998-01-01 23:59:59.990

ANSI i ISO 8601 zgodności

datetimenie jest ANSI lub ISO 8601 zgodny.

Przykłady

Poniższy przykład porównuje wyniki rzutowania ciąg każdemu date i time typu 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';

Oto zestaw wyników.

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

Zobacz także

Odwołanie