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]

  • hh jest dwie cyfry od 0 do 14, które reprezentują liczbę godzin w strefie czas przesunięcie.

  • mm jest dwie cyfry od 0 do 59, która reprezentuje liczbę dodatkowych minut w strefie czas przesunięcie.

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.