Udostępnij za pośrednictwem


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.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

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.

smalldatetime data argumentu

Gdy date jest smalldatetime, sekund są zwracane jako 00.

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

Zobacz także

Odwołanie