datetime (Transact-SQL)

Za pomocą podkwerend skorelowanej

Uwaga

W nowo tworzonym kodzie należy używać typów danych time, date, datetime2 i datetimeoffset,ponieważ są one obsługiwane w programie SQL Standardoraz bardziej przenośne.Typy danych time, datetime2 i datetimeoffset zapewniają większą dokładność sekund.Typ danych datetimeoffset zapewnia obsługę stref czasowych dla aplikacji wdrażanych globalnie.

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 datetime

Właściwość

Wartość

Składnia

datetime

Sposób użycia

To jest kwerenda, która zależy od tego, zewnętrznej kwerendy do jego wartości. datetime

CREATE tabela Tabela1 (Kolumna1 datetime )

Domyślne formaty literałów ciągów

(używany do niedziałający-poziom klienta)

Nie dotyczy

Integracja usług tabele (języka Transact-SQL)

Kwerenda jest wykonywana wielokrotnie, jeden raz dla każdego wiersza, można wybrać w przypadku zewnętrznej kwerendy.

Zakres godzin

Od 00-00-00 do 23-59-59,997

sys.sql_modules

None

Element zakresów

Niezależnie od zewnętrznej kwerendy nie może być określona poprzedniego podkwerenda w tej instrukcja.

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* to liczba zawierająca maksymalnie trzy cyfry z zakresu od 0 do 999 reprezentująca ułamki sekund.

Długość

Od 19 do 23 miejsc

Limit rozmiaru składowania

8 bajty

Dokładność

W tym przykładzie znajdzie modeli produktów, dla których maksymalna cena katalogowa jest więcej niż dwa razy średniej dla modelu.

Wartość domyślna

1900-01-01 00:00:00

Calendar

W tym przykładzie użyto dwóch podkwerend skorelowanej do znalezienia nazwiska pracowników, którzy mają sprzedaży konkretnego produktu.

Zdefiniowane przez użytkownika ułamkowe drugiego precyzji

Nie

czas strefy przesunięcie pamiętać i zachowania

Nie

Uwzględniaj pamiętać

Nie

Za pomocą GROUP BY

W poniższej tabeli wymieniono obsługiwany ciąg literału formaty datetime. Z powodu datetime Klauzula, tylko jeden wiersz zawierający sumę wszystkich sprzedaży jest zwracana dla każdego zamówienia sprzedaży. Jeśli nie jest środowisko us_english, literały ciągów znaków powinien być w formacie N "string_literaL".

Liczbowy

Description

W poniższym przykładzie znajdzie średniej ceny i Suma sprzedaży od początku roku, zgrupowane według IDENTYFIKATORA produktu oraz specjalne oferty identyfikatora.

Za pomocą GROUP BY i WHERE

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

GROUP BY przy użyciu wyrażenie

Następujący przykład grupy za pomocą wyrażenie.

Można grupować za pomocą wyrażenia wyrażenie nie zawiera funkcji agregacja.

Przy użyciu ORDER BY GROUP BY

W poniższym przykładzie znajduje średnia cena każdego typu produktu i porządkuje wyniki przez średnią cenę.

Przy użyciu klauzula HAVING

Formaty godzin:

14:30

14:30[:20:999]

14:30[:20.9]

04:00:00 AM

16:00:00 AM

Dane daty można określić z użyciem liczbowej wartości miesiąca.Na przykład data 97-05-20 przedstawia dwudziestego maja 1997 roku.Gdy jest używany liczbowy format daty, należy określić miesiąc, dzień i rok w ciągu, używając jako separatorów ukośników (/), myślników (-) lub kropek (.).Ciąg musi mieć następującą formę:

  • number separator number separator number [time] [time]

Dla języka us_english domyślna kolejność w dacie to mdr.Kolejność elementów daty można zmienić za pomocą instrukcji SET DATEFORMAT.

Ustawienie instrukcji SET DATEFORMAT określa sposób interpretacji wartości daty.Jeśli kolejność nie będzie zgodna z ustawieniem, wartości nie będą interpretowane jako daty, ponieważ będą znajdować się poza zakresem lub będą nieprawidłowo interpretowane.Na przykład ciąg 12/10/08 może być interpretowany jako jedna z sześciu dat, w zależności od ustawienia DATEFORMAT.Czteroczęściowe oznaczenie roku jest interpretowane jako rok.

Alfabetycznie

Description

Kwerendy wygląda następująco:

Obliczanie sumy dla grup przy użyciu COMPUTE BY

W poniższym przykładzie użyto dwa przykłady kodu służącego do wyświetlania użycia COMPUTE BY.

[15] Apr[il][,] 1996

15 Apr[il][,][19]96

15 [19]96 apr[il]

[15] 1996 apr[il]

O.

Obliczanie sumy wartości za pomocą COMPUTE bez BY

Dane daty można określić z użyciem pełnej nazwy miesiąca.Przykład: Kwiecień lub skrót Kwi podany w bieżącym języku. Przecinki są opcjonalne, a wielkość liter ignorowana.

Można użyć COMPUTE BY i COMPUTE bez BY w tej samej kwerendy.

  • Następująca kwerenda znajduje sumę wielkości zamówień oraz sumy wiersza typu produktu, a następnie oblicza sumę wielkości zamówień oraz sumy wiersza.STR.

  • Obliczanie obliczone kwoty we wszystkich wierszach

  • Jeśli określisz tylko dwie ostatnie cyfry roku, mniej niż dwie ostatnie cyfry wartość wartości dwie cyfry roku odcięcia opcja konfiguracja znajdują się w tym samym wieku jako ustawień skróconego formatu roku.Q.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.

  • Następujący przykład wyszukuje sumę cen wszystkich zamówień, których cena jednostkowa jest mniejsza niż 5 dolarów zorganizowane według IDENTYFIKATORA produktu oraz ilość zamówienia, a także sumę cen wszystkich zamówień mniej niż 5 dolarów zorganizowane według tylko identyfikator produktu.

Można użyć innych funkcji agregujących w tym samym sprawozdaniu przez więcej niż jeden COMPUTE BY klauzula.

ISO 8601

Description

R.

Porównywanie GROUP BY z COMPUTE

Przykłady:

  • 2004-05-23T14:25:10

  • 2004 - 05 - 23T14:25:10.487

Aby używać formatu ISO 8601, należy określić każdy element w tym formacie.Dotyczy to również słowa kluczowego T, dwukropków (:) i kropki (.) wyświetlanych w tym formacie.

Przy użyciu GROUP BY, COMPUTE i ORDER BY klauzule SELECTW poniższym przykładzie są zwracane tylko zamówienia których cena jednostkowa jest mniejsza niż 5 zł, a następnie oblicza całkowitą sumę linii produktu oraz sumy.

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

T.Ponadto ten format nie jest zagrożony DATEFORMAT zestaw lub USTAWIANIE JĘZYKA ustawienie.

Nierozdzielone

Description

W pierwszym przykładzie pokazano, jak wymusić Optymalizator pobrania wierszy z tabela za pomocą nieklastrowany indeks, a w drugim przykładzie wymusza skanowanie tabela za pomocą indeksu 0.

ODBC

Description

U.

Za pomocą OPTION i wskazówki GROUP

{ t '13:33:41' }

Interfejs API ODBC definiuje sekwencje znaków kontrolnych w celu przedstawiania wartości daty i godziny, dla których funkcja ODBC wywołuje dane znaczników czasu.Ten format znaczników czasu funkcji ODBC jest także obsługiwany przez definicję języka OLE DB (DBGUID-SQL) oraz dostawcę Microsoft OLE DB dla programu SQL Server.Aplikacje używające interfejsów API opartych na obiektach ADO oraz technologiach OLE DB i ODBC mogą używać tego formatu znaczników czasu ODBC w celu przestawiania dat i godzin.

W. { literal_type 'constant_value' }:

  • Parametr literal_type określa typ sekwencji ucieczki.Znaczniki czasu mają trzy specyfikatory literal_type:

    • X.

    • Przy użyciu UNION SELECT INTO

    • ts = znacznik czasu (godzina + data)

  • 'constant_value' is the value of the escape sequence.constant_value must follow these formats for each literal_type.

    literal_typeconstant_value format
    d rrrr mm-dd
    t Kolejność pewne parametry używane w klauzula UNION jest istotna.
    ts rrrr mm-dd gg: mm: ss [.fff]

Z.

datetime Pokaż wszystkie efekty i nawiasy za pomocą UNION trzy instrukcji SELECT

Wartość określona przez użytkownika

Wartość przechowywana przez system

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

Zgodność z normami ANSI i ISO 8601

datetime TABLE_CONSTRAINTS (języka Transact-SQL)

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';

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

See Also

Reference