czas (w języku Transact-SQL)
Określa czas dnia.czas jest bez czas strefy świadomości i jest oparty na zegarze 24-godzinnym.
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.
czas Opis
Właściwość |
Wartość |
---|---|
Składnia |
time [ (fractional second precision) ] |
Użycie |
ZADEKLAROWAĆ @ MyTimetime(7) Tworzenie tabeli Tabela1 (Kolumna1 time(7) ) |
fractional seconds precision |
Określa liczbę cyfr ułamkowe części sekundy. Może to być liczba całkowita z zakresu od 0 do 7. Dokładność ułamkową domyślną jest 7 (NS). |
Użycie |
ZADEKLAROWAĆ @ MyTimetime(7) Tworzenie tabeli Tabela1 (Kolumna1 time(7) ) |
Domyślny format literał ciąg (używane dla niedziałający-poziom klient) |
ss [.NNNNNNN] Aby uzyskać więcej informacji zobacz "zgodność z poprzednimi w dółpoziom klientów" sekcja Data i czas danych. |
Zakres |
00:00:00.0000000 do 23:59:59.9999999 |
Element zakresów |
hh jest dwie cyfry od 0 do 23, który reprezentuje godzinę. mm jest dwie cyfry od 0 do 59, która reprezentuje minuty. ss to dwie cyfry od 0 do 59, która reprezentuje drugą. n * wynosi zero do siedmiu cyfr od 0 do 9999999, które reprezentują ułamków sekund. |
Długość znaków |
8 pozycji minimum (SS) maksymalnie 16 (: mm: ss.NNNNNNN) |
Skala dokładności, (użytkownik Określa skalę tylko) |
Określona skalaWynik (precyzja, skala)Kolumna długość (bajtów)Ułamkowe sekund dokładność
time (16,7)57
time(0) (8,0)30-2
time(1) (10,1)30-2
time(2) (11,2)30-2
time(3) (12,3)43-4
time(4) (13,4)43-4
time(5) (14,5)55-7
time(6) (15,6)55-7
time(7) (16,7)55-7
|
Limit rozmiaru dla składowania |
5 bajtów ustalona, jest domyślnym z domyślnymi ułamkowe precision drugiego NS. |
Dokładność |
100 nanosekundach |
Wartość domyślna |
00:00:00 Ta wartość jest używana dla części dołączonym czas niejawna konwersja z date do datetime2 lub datetimeoffset. |
Zdefiniowany przez użytkownika ułamkowe drugiego precision |
Tak |
ŚWIADOME przesunięcie strefy czasowej i zachowania |
Nie |
Uwzględniaj pamiętać |
Nie |
Obsługiwane literału ciągu sprzedaży — formaty czas
W poniższej tabela przedstawiono prawidłowy ciąg literału formaty dla time typu danych.
SQL Server |
Opis |
---|---|
hh: mm [: ss] [: ułamków sekund] [AM] [PM] hh: mm [: ss] [.fractional sekundy] [AM] [PM] hhAM [PM] hh AM [PM] |
JESTEM wartość godziny 0 reprezentuje godzinę po północy (AM), niezależnie od tego, czy określono.Nie można określić PM, gdy godzinę jest równa 0. Godziny od 01 do 11 reprezentują godzin przedpołudniowych, gdy AM i PM nie jest określone.Wartości reprezentują godzin przedpołudniowych, gdy AM jest określony.Wartości reprezentują godzin popołudniowych, jeśli określono PM. Wartość godziny 12 reprezentuje godzinę, która rozpoczyna się na południe, jeśli AM i PM nie jest określone.Jeśli AM określono wartość reprezentuje godzinę, która rozpoczyna się od północy.Jeśli określono PM wartość reprezentuje godzinę, która rozpoczyna się na południe.Na przykład 12: 01 jest 1 minuta popołudniowych, jak jest 12:01 PM; a 12:01 AM jednej minuty po północy.Określanie 12:01 AM jest taka sama, jak określanie 00: 01 lub 00:01 Wartości godzin od 13 do 23 reprezentują godzin popołudniowych, jeżeli nie określono AM lub PM.Wartości również reprezentować godzin popołudniowych, gdy określono PM.AM nie można określić, kiedy jest wartość godziny od 13 do 23. Wartość godziny 24 jest nieprawidłowa.Aby przedstawić północy, użyj 12:00 AM lub 00: 00. Milisekund mogą być poprzedzone dwukropka (:) lub kropki (.).Jeżeli użyto dwukropka, numer oznacza tysięcznych z drugiego.Jeśli używana jest kropka, pojedyncza cyfra oznacza dziesiątych z drugiego, dwie cyfry oznaczają setnych z drugiej, a trzy cyfry oznaczają tysięcznych z drugiego.Na przykład 12:30:20:1 oznacza 20 i jednej tysięcznej sekundy w przeszłości 12: 30; 12:30:20.1 wskazuje 20 i jednej dziesiątej sekundy w przeszłości 12: 30. |
ISO 8601 |
Uwagi |
---|---|
ss hh: mm [: ss] [.fractional sekundy] |
|
ODBC |
Uwagi |
---|---|
{t ": mm: ss [.fractional sekundy]"} |
ODBC API szczególnych. Funkcje w SQL Server 2008 w SQL Server 2005. |
czas Zgodność z ANSI i ISO 8601 norm
Przy użyciu 24 godziny do reprezentowania północy i przestępnych drugie ponad 59, zgodnie z definicją ISO 8601 (ppkt 5.3.2 i 5.3) nie są obsługiwane zgodne ze starszymi wersjami i zgodne z istniejących typów data i czas .Nie są zdefiniowane przez SQL standard 2003.
Domyślny ciąg literału format (używane dla niedziałający-poziom klient) zostanie zsynchronizowany z SQL standardowego formularza, który jest zdefiniowany jako ss [.NNNNNNN].Ten format jest podobny do definicji ISO 8601 czasu z wyjątkiem ułamków sekund.
Przykłady
A.Porównanie typów danych data i czas
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';
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 |
B.Wstawianie prawidłowe literały ciągów znaków czasu do czas(7) kolumny
W poniższej tabela wymieniono literały inny ciąg , które mogą być wstawiane w kolumna typ danych time(7) z wartościami, które są następnie przechowywane w tej kolumna.
Typ formatu literał ciągu |
Wstawiony ciąg literału |
czas(7) wartość przechowywana |
Opis |
---|---|---|---|
SQL Server |
"01:01:01:123 AM" |
01:01:01.1230000 |
Gdy dwukropka (:) pochodzi przed precision ułamków sekund skali nie może przekraczać trzech miejscach lub wystąpi błąd. |
SQL Server |
"01:01:01.1234567 AM" |
01:01:01.1234567 |
AM lub PM jest określony, czas jest przechowywany w formacie 24-godzinnym bez literału AM lub PM |
SQL Server |
"01:01:01.1234567 PM" |
13:01:01.1234567 |
AM lub PM jest określony, czas jest przechowywany w formacie 24-godzinnym bez literału AM lub PM |
SQL Server |
"01:01:01.1234567 PM" |
13:01:01.1234567 |
Odstęp przed AM lub PM jest opcjonalne. |
SQL Server |
"01 AM" |
01:00:00.0000000 |
Gdy tylko godzinę jest określony, wszystkie inne wartości są równe 0. |
SQL Server |
"01 AM" |
01:00:00.0000000 |
Odstęp przed AM lub PM jest opcjonalne. |
SQL Server |
'01:01:01' |
01:01:01.0000000 |
Gdy nie określono precision ułamków sekund, każdej pozycji, która jest zdefiniowana przez typ danych jest równa 0. |
ISO 8601 |
'01:01:01.1234567' |
01:01:01.1234567 |
Zgodne z ISO 8601, należy użyć formatu 24-godzinnego, nie AM lub PM. |
ISO 8601 |
'01:01:01.1234567 +01:01' |
01:01:01.1234567 |
Opcjonalnie czas strefy różnica (TZD) jest dozwolony w danych wejściowych, ale nie jest przechowywany. |
C.Wstawianie literału ciągu czasu w kolumnach każdej data i czas typ daty
W poniższej tabela pierwsza kolumna zawiera czasciąg literału wstawione do tabelabazy danychkolumna typ danych data lub czas w drugiej kolumna. Trzecia kolumna zawiera wartości, które będą przechowywane w tabelabazy danychkolumna.
Wstawiony ciąg literału |
Typ danych kolumny |
Wartość przechowywana w kolumna |
Opis |
---|---|---|---|
'12:12:12.1234567' |
time(7) |
12:12:12.1234567 |
Jeżeli precyzja ułamków sekund przekracza wartość określoną dla kolumna, ciąg zostanie obcięty bez błędu. |
'2007-05-07' |
date |
NULL |
Każda wartość czas spowoduje instrukcja INSERT nie powiedzie się. |
'12:12:12' |
smalldatetime |
1900-01-01 12:12:00 |
Każda wartość precyzji ułamków sekund spowoduje instrukcja INSERT nie powiedzie się. |
'12:12:12.123' |
datetime |
1900-01-01 12:12:12.123 |
Wszelkie drugiego precision dłużej niż trzy pozycje spowoduje instrukcja INSERT nie powiedzie się. |
'12:12:12.1234567' |
datetime2(7) |
1900-01-01 12:12:12.1234567 |
Jeżeli precyzja ułamków sekund przekracza wartość określoną dla kolumna, ciąg zostanie obcięty bez błędu. |
'12:12:12.1234567' |
datetimeoffset(7) |
1900-01-01 12:12:12.1234567 +00:00 |
Jeżeli precyzja ułamków sekund przekracza wartość określoną dla kolumna, ciąg zostanie obcięty bez błędu. |
Zobacz także