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