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:
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:
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:
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' }:
|
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 |