DATEPART (Transact-SQL)
Zwraca liczbę całkowitą, która reprezentuje określonego datepart z określonym date.
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.
DATEPART ( datepart , date )
Argumenty
datepart
Jest to część date (wartość data lub godziny) dla której integer zostaną zwrócone. Poniższa lista zawiera wszystkie ważne datepart argumenty. Odpowiedniki zmienne zdefiniowane przez użytkownika są nieprawidł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
Is an expression that can be resolved to a time, date, smalldatetime, datetime, datetime2, or datetimeoffset value.date can be an expression, column expression, user-defined variable, or string literal.Aby uniknąć niejednoznaczności, za pomocą czterech cyfr.Aby uzyskać informacje na temat dwóch cyfr lat zobacz two digit year cutoff Option.
Zwracany typ
int
Return Value
Każdy datepart i ich skróty zwracają tę samą wartość.
Zwracana wartość zależy od środowiska języka zestaw przy użyciu zestaw JĘZYKA ijęzyk domyślny logowania.Jeśli date to ciąg literału dla niektórych formatów zwróconej wartości zależy od formatu określone za pomocą DATEFORMAT USTAWIANIE.zestaw DATEFORMAT nie wpływa na wartość zwracana, gdy data jest wyrażenie kolumna daty lub czas typu danych.
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). The nanoseconddatepart return value has a scale of 9 (.123456700) and the last two positions are always 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 w parametrze datepart argumenty
Kiedy datepart jest week (wk, ww) lub weekday (dw), zwracana wartość zależy od wartości, które zestaw za pomocą zestaw DATEFIRST.
January 1 of any year defines the starting number for the weekdatepart, for example: ( W parametrze DATEPARTwk, "1 stycznia xxxx ") = 1, gdzie XXXX jest dowolnego roku.
The following table lists the return value for week and weekdaydatepart for '2007-04-21 ' for each SET DATEFIRST argument.1 Stycznia wypada w niedzielę w roku 2007.21 Kwietnia jest soboty w roku 2007.zestaw DATEFIRST 7, od niedzieli, jest to ustawienie domyślne dla Stanów ZjednoczonychW języku angielskim.
zestaw 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ń w parametrze datepart argumenty
Wartości, które są zwracane w parametrze DATEPART)year, date), W PARAMETRZE DATEPART ()month, date), a w parametrze DATEPART ()day, date) są takie same jak te, które zostały zwrócone przez funkcje ROK, MIESIĄC, and DZIEŃ, f odpowiednio.
ISO_WEEK w parametrze datepart
ISO 8601 obejmuje tydzień ISO-data systemu, system numerowania dla tygodni.Każdego tygodnia jest skojarzony z roku, w którym występuje czwartek.Na przykład tygodniem 1 2004 (2004W01) uruchomiono od poniedziałku 29 grudnia 2003 do niedzieli, 4 stycznia 2004.Najwyższy numer tygodnia w roku może być 52 lub 53.Ten styl numeracji jest zazwyczaj używany w krajach Europy, ale rzadko gdzie indziej.
System numerowania w różnych krajach nie może być zgodne z ISO standardowych.Istnieją co najmniej sześciu możliwości, jak pokazano w poniższej tabela
Pierwszy dzień tygodnia |
Zawiera pierwszy tydzień roku |
Tygodnie przypisane dwa razy |
Używane przez/w |
---|---|---|---|
Niedziela |
1 Stycznia, Pierwszy sobota 1–7 dni w roku |
Tak |
Stany Zjednoczone |
Poniedziałek |
1 Stycznia, Pierwsza niedziela 1–7 dni w roku |
Tak |
Większość Europa i Wielkiej Brytanii |
Poniedziałek |
4 Stycznia, Pierwszy czwartek 4–7 dni w roku |
Nie |
ISO 8601, Norwegia i Szwecji |
Poniedziałek |
7 Stycznia, Pierwszy poniedziałek 7 dni w roku |
Nie |
|
Środa |
1 Stycznia, Pierwszy wtorek 1–7 dni w roku |
Tak |
|
Sobota |
1 Stycznia, Pierwszy piątek 1–7 dni w roku |
Tak |
TZoffset
The TZoffset (tz) is returned as the number of minutes (signed).Następująca instrukcja zwraca przesunięcie strefy czasowej 310 minut.
SELECT DATEPART (TZoffset, 2007-05-10 00:00:01.1234567 +05:10);
Jeśli datepart argument jest TZoffset (tz) i date Argument nie jest datetimeoffset Typ danych, zwracana jest wartość NULL.
Zwrócona domyślne dla datepart jest nie w dacie argumentu
Jeśli typ danych date Argument nie ma określonego datepart, wartość domyślna dla tej datepart zostaną zwrócone.
Na przykład, domyślnie 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 date, a następnie 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 date, a następnie zwraca 0, 0, 0.
SELECT DATEPART(hour, '2007-06-01')
,DATEPART(minute, '2007-06-01')
,DATEPART(second, '2007-06-01');
Sekundy ułamkowe
Ułamków sekund są zwracane, jak pokazano w poniższej 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
Remarks
W parametrze DATEPART może być używany na liście select, WHERE, HAVING, GROUP BY i ORDER BY klauzule.
Przykłady
W poniższym przykładzie są zwracane roku podstawowym.Rok bazowy jest przydatny do obliczania data.W przykładzie określono data jako liczbę.Zwróć uwagę, że SQL Server interpretuje wartooć 0 jako 1 stycznia 1900 roku.
SELECT DATEPART(year, 0), DATEPART(month, 0), DATEPART(day, 0);
-- Returns: 1900 1 1 */