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.

Topic link iconKonwencje składni języka Transact-SQL

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.

Smalldatetime Data argumentu

Kiedy date jest Smalldatetime, sekund są zwracane jako 00.

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 */

See Also

Reference