DATEPART (Transact-SQL)
Zwraca liczbę całkowitą reprezentującą określony datepart z określonym date.
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.
Składnia
DATEPART ( datepart , date )
Argumenty
datepart
Jest to część date (wartość data lub czas ) dla której integer zostaną zwrócone.W poniższej tabela wymieniono wszystkie prawidłowe datepart argumentów.Odpowiedniki zmienne zdefiniowane przez użytkownika nie są prawidłowe.datepart
Skróty
year
yy, yyyy
quarter
qq, q
month
mm, m
dayofyear
dy, y
day
dd, d
week
wk, ww
weekday
dw
hour
hh
minute
mi, n
second
ss, s
millisecond
ms
microsecond
mcs
nanosecond
ns
TZoffset
tz
ISO_WEEK
isowk, isoww
date
To wyrażenie , które może być przetłumaczona na time, date, smalldatetime, datetime, datetime2, lub datetimeoffset wartości.datemoże być wyrażenie,wyrażenie kolumna, zmienna zdefiniowane przez użytkownika lub ciąg literału.Aby uniknąć niejednoznaczności, za pomocą czterech cyfr.Uzyskać informacje o dwóch cyfr lat Opcja dwie cyfry roku odcięcia.
Zwracany typ
int
Wartość zwracana
Każdy datepart i jego skróty zwraca te same wartości.
Zwracana wartość zależy od środowiska język zestaw za pomocą Ustaw język oraz język domyślny logowania.Jeśli date ciąg literału dla niektórych formatów, zwracana wartość zależy od formatu określone za pomocą USTAWIĆ format daty.Ustaw format daty nie narusza zwracanej wartości data jestwyrażenie kolumnatypu danych data lub czas .
Poniższa tabela zawiera listę wszystkich datepart argumenty odpowiadające im zwracanej wartości dla instrukcja SELECT DATEPART(datepart,'2007-10-30 12:15:32.1234567 +05:10').Typ danych date argument jest datetimeoffset(7).nanoseconddatepart Zwraca wartość ma skali 9 (. 123456700) i dwa ostatnie pozycje są zawsze 00.
datepart |
Zwracanie wartości |
---|---|
year, yyyy, yy |
2007 |
quarter, qq, q |
4 |
month, mm, m |
10 |
dayofyear, dy, y |
303 |
day, dd, d |
30 |
week, wk, ww |
45 |
weekday, dw |
1 |
hour, hh |
12 |
minute, n |
15 |
second, ss, s |
32 |
millisecond, ms |
123 |
microsecond, mcs |
123456 |
nanosecond, ns |
123456700 |
TZoffset, tz |
310 |
tydzień i dzień tygodnia datepart argumenty
Gdy datepart jest week ()wk, ww) lub weekday ()dw), zwracana wartość zależy od wartości zestaw przy użyciu USTAWIĆ DATEFIRST.
1 Stycznia każdego roku określa numer początkowy dla weekdatepart, na przykład: DATEPART (wk, "1 stycznia xxxx") = 1, gdzie xxxx jest każdego roku.
W poniższej tabela przedstawiono wartość zwracana dla week i weekdaydatepart dla ' 2007-04-21 " dla każdego zestawu DATEFIRST argumentu.1 Stycznia wypada w niedzielę w roku 2007.21 Kwietnia jest soboty w roku 2007.Ustaw DATEFIRST 7, niedziela, jest domyślnym dla Stanów ZjednoczonychW języku angielskim.
SET DATEFIRST argument |
tydzień zwrócone |
dzień tygodnia zwrócone |
---|---|---|
1 |
16 |
6 |
2 |
17 |
5 |
3 |
17 |
4 |
4 |
17 |
3 |
5 |
17 |
2 |
6 |
17 |
1 |
7 |
16 |
7 |
rok, miesiąc i dzień datepart argumenty
Wartości, które są zwracane dla DATEPART (year, date), DATEPART (month, date), a w parametrze DATEPART (day, date) są takie same jak wartości zwracanych przez funkcje roku, miesiąca, i dzień, f odpowiednio.
ISO_WEEK datepart
ISO 8601 obejmuje ISO tygodnia —data system, system numerowania dla tygodni.Każdego tygodnia jest skojarzony z roku, w którym występuje czwartek.Na przykład tydzień 1 2004 (2004W01) uruchomiono od poniedziałku 29 grudnia 2003 niedziela, 4 stycznia 2004 r.Najwyższy numer tygodnia w roku może być 52 i 53.Ten styl numeracji jest zazwyczaj używany w krajach/regionach Europy, ale rzadko gdzie indziej.
System numerowania w różnych krajach może być niezgodne ze standardem ISO.Istnieją co najmniej sześć możliwości, jak pokazano w poniższej tabela
Pierwszy dzień tygodnia |
Zawiera pierwszy tydzień roku |
Tygodnie przypisane dwa razy |
Używany przez/w |
---|---|---|---|
Niedziela |
Od dnia 1 stycznia, Pierwszy sobota od 1 do 7 dni w roku |
Tak |
United States |
Poniedziałek |
Od dnia 1 stycznia, Pierwsza niedziela od 1 do 7 dni w roku |
Tak |
Większość Europy i Zjednoczone Królestwo |
Poniedziałek |
Od dnia 4 stycznia, Pierwszy czwartek od 4 do 7 dni w roku |
Nie |
ISO 8601, Norwegia i Szwecja |
Poniedziałek |
Od dnia 7 stycznia, Pierwszy poniedziałek 7 dni w roku |
Nie |
|
Środa |
Od dnia 1 stycznia, Pierwszy wtorek od 1 do 7 dni w roku |
Tak |
|
Sobota |
Od dnia 1 stycznia, Pierwszego piątku od 1 do 7 dni w roku |
Tak |
TZoffset
TZoffset ()tz) Są zwracane jako liczba minut (podpisane).Następująca instrukcja zwraca przesunięcie strefy czas 310 minut.
SELECT DATEPART (TZoffset, 2007-05-10 00:00:01.1234567 +05:10);
Jeśli datepart argument jest TZoffset ()tz) i date argument jest nie datetimeoffset typu danych, zwracana jest wartość NULL.
Zwrócona domyślne dla datepart jest nie w polu data argumentu
Jeśli typ danych date argument nie ma określonego datepart, domyślną dla tej datepart zostaną zwrócone.
Na przykład domyślna rok miesiąc dzień dla każdego date Typ danych jest 1900-01-01.Poniższa instrukcja zawiera argumenty część data dla datepart, argument czas dla datei zwraca 1900, 1, 1, 1, 2.
SELECT DATEPART(year, '12:10:30.123')
,DATEPART(month, '12:10:30.123')
,DATEPART(day, '12:10:30.123')
,DATEPART(dayofyear, '12:10:30.123')
,DATEPART(weekday, '12:10:30.123');
Domyślna godzina minuty sekundy dla time Typ danych to 00: 00:00.Poniższa instrukcja zawiera argumenty część czas dla datepart, argument data dla datei zwraca 0, 0, 0.
SELECT DATEPART(hour, '2007-06-01')
,DATEPART(minute, '2007-06-01')
,DATEPART(second, '2007-06-01');
Ułamków sekund
Ułamków sekund są zwracane, jak pokazano w następującej instrukcji:
SELECT DATEPART(millisecond, '00:00:01.1234567'); -- Returns 123
SELECT DATEPART(microsecond, '00:00:01.1234567'); -- Returns 123456
SELECT DATEPART(nanosecond, '00:00:01.1234567'); -- Returns 123456700
Uwagi
DATEPART mogą być używane w liście, w przypadku gdy występują, klauzule według kolejności i według grupy.W SQL Server 2008, posługując się miarką DATEPART niejawnie kątową literały ciągów ciąg jako datetime2 typów.Korzystając z DATEADD DATEPART, należy unikać niejawna poświaty literały ciągów ciąg .Aby uzyskać więcej informacji, zobacz DATEADD (Transact-SQL).
Przykłady
Poniższy przykład Zwraca rok bazowy.Rok bazowy jest przydatny do obliczania data .W przykładzie określono data jako liczbę.Należy zauważyć, że SQL Server interpretuje wartooć 0 jako 1 stycznia 1900.
SELECT DATEPART(year, 0), DATEPART(month, 0), DATEPART(day, 0);
-- Returns: 1900 1 1 */