Udostępnij za pomocą


NAZWA DATY (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Database w Microsoft Fabric

Funkcja ta zwraca ciąg znaków reprezentujący określoną datę tej daty.

Zobacz Typy i funkcje danych daty i godziny (Transact-SQL), aby zapoznać się z omówieniem wszystkich typów danych i funkcji daty i godziny języka Transact-SQL.

Transact-SQL konwencje składni

Składnia

DATENAME ( datepart , date )  

Arguments

datepart
Konkretna część argumentu o dacie, która DATENAME wróci. W tej tabeli wymieniono wszystkie prawidłowe argumenty elementów datepart .

Uwaga / Notatka

DATENAME nie akceptuje odpowiedników zmiennych zdefiniowanych przez użytkownika dla argumentów datepart .

datepart Abbreviations
rok yy, yyyy
ćwiartka qq, q
miesiąc mm, m
dayofyear dy, y
dzień dd, d
tydzień WK, WW
Rozkład DW, W
godzina hh
minuta mi, n
sekunda SS, S
milisekunda Ms
mikrosekundy Mcs
Nanosekund Ns
TZoffset TZ
ISO_WEEK ISOWK, ISOWW

date

Wyrażenie, które może rozwiązywać się do jednego z następujących typów danych:

  • date
  • datetime
  • datetimeoffset
  • datetime2
  • smalldatetime
  • time

W przypadku datyDATENAME zaakceptuje wyrażenie kolumny, wyrażenie, literał ciągu lub zmienną zdefiniowaną przez użytkownika. Użyj czterocyfrowych lat, aby uniknąć problemów z niejednoznacznością. Aby uzyskać informacje o dwóch cyfrowych latach , zobacz Konfigurowanie opcji konfiguracji serwera o dwóch cyfrach.

Zwracany typ

nvarchar

Wartość zwracana

  • Każdy element datepart i jego skróty zwracają tę samą wartość.

Wartość zwrotna zależy od środowiska językowego ustawionego przy użyciu SET LANGUAGE oraz od opcji konfiguracji serwera Configure the default language (Konfiguruj domyślny język Server Configuration w logincie). Wartość zwrotu zależy od SET DATEFORMAT, jeśli date jest literalem ciągu w niektórych formatach. USTAW DATEFORMAT nie zmienia wartości zwrotnej, gdy data jest kolumnowym wyrażeniem daty lub typu danych o czasie.

Gdy parametr daty ma argument typu daty, wartość zwrotna zależy od ustawienia określonego przez SET DATEFIRST.

TZoffset datepart Argument

Jeśli argument datepart to TZoffset (tz), a argument daty nie ma offsetu strefy czasowej, DATEADD zwraca 0.

smalldatetimetime Argument

Gdy date jest małodatowe,DATENAME zwraca sekundy jako 00.

Domyślnie zwracane dla części daty, która nie znajduje się w argumencie daty

Jeśli typ danych argumentu data nie ma określonej części daty, zwróci domyślną wartość dla tej części tylko wtedy, DATENAME gdy argument daty ma literal .

Na przykład domyślny rok-miesiąc-dzień dla dowolnego typu danych datowych to 1900-01-01. To zdanie zawiera argumenty date part dla datepart, argument time dla date oraz DATENAME zwraca 1900, January, 1, 1, Monday.

SELECT DATENAME(year, '12:10:30.123')  
    ,DATENAME(month, '12:10:30.123')  
    ,DATENAME(day, '12:10:30.123')  
    ,DATENAME(dayofyear, '12:10:30.123')  
    ,DATENAME(weekday, '12:10:30.123');  

Jeśli data jest podana jako zmienna lub kolumna tabeli, a typ danych dla tej zmiennej lub kolumny nie zawiera określonego fragmentu daty, DATENAME zwróci się błąd 9810. W tym przykładzie zmienna @t ma typ danych czasowych . Przykład nie jest zaliczony, ponieważ data część roku jest nieprawidłowa dla typu danych czasowych :

DECLARE @t time = '12:10:30.123';   
SELECT DATENAME(year, @t);  

Uwagi

Użyj DATENAME w następujących klauzulach:

  • GRUPUJ WEDŁUG
  • HAVING
  • SORTUJ WEDŁUG
  • WYBIERZ <listę>
  • WHERE

W SQL Server DATENAME domyślnie obsadza literale ciągów jako typ datetime2 . Innymi słowy, nie obsługuje formatu YDM, DATENAME gdy data jest przekazywana jako ciąg znaków. Aby użyć formatu YDM, należy jawnie rzutować ciąg na typ datetime lub smalldatetime .

Przykłady

Ten przykład zwraca części daty dla określonej daty. Podstaw wartość datepart z tabeli jako argument datepart w instrukcji SELECT:

SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');

Oto zestaw wyników.

datepart Wartość zwracana
rok, yyyy, yy 2007
Ćwierćdolarówka, QQ, Q 4
miesiąc, mm, m październik
dayofyear, dy, y 303
Day, DD, D 30
tydzień, tydzień, śwień 44
W dni powszednie, dw Wtorek
godzina, hh 12
minuta, n 15
Po drugie, SS, S 32
Milisekunda, pani 123
Mikrosekunda, MCS 123456
nanosekunda, ns 123456700
TZoffset, tz +05:10
ISO_WEEK, ISOWK, ISOWW 44

Azure Synapse Analytics and Analytics Platform System (PDW)

Ten przykład zwraca części daty dla określonej daty. Podstaw wartość datepart z tabeli jako argument datepart w instrukcji SELECT:

SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');  

Oto zestaw wyników.

datepart Wartość zwracana
rok, yyyy, yy 2007
Ćwierćdolarówka, QQ, Q 4
miesiąc, mm, m październik
dayofyear, dy, y 303
Day, DD, D 30
tydzień, tydzień, śwień 44
W dni powszednie, dw Wtorek
godzina, hh 12
minuta, n 15
Po drugie, SS, S 32
Milisekunda, pani 123
Mikrosekunda, MCS 123456
nanosekunda, ns 123456700
TZoffset, tz +05:10
ISO_WEEK, ISOWK, ISOWW 44

Zobacz także

RZUTOWANIE i konwertowanie (Transact-SQL)