Share via


DATENAME (Transact-SQL)

Gibt eine Zeichenfolge zurück, die den angegebenen Wert für datepart des angegebenen Parameters date darstellt.

Eine Übersicht über alle Datums- und Uhrzeitdatentypen und zugehörigen Funktionen von Transact-SQL finden Sie unter Datums- und Uhrzeitdatentypen und zugehörige Funktionen (Transact-SQL).

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

Syntax

DATENAME ( datepart , date )

Argumente

  • datepart
    Ist der Teil von date, der zurückgegeben werden soll. In der folgenden Tabelle sind alle gültigen datepart-Argumente aufgelistet. Benutzerdefinierte Variablenentsprechungen sind nicht gültig.

    datepart

    Abkürzungen

    year

    yy, yyyy

    quarter

    qq, q

    month

    mm, m

    dayofyear

    dy, y

    day

    dd, d

    week

    wk, ww

    weekday

    dw, w

    hour

    hh

    minute

    mi, n

    second

    ss, s

    millisecond

    ms

    microsecond

    mcs

    nanosecond

    ns

    TZoffset

    tz

    ISO_WEEK

    ISOWK, ISOWW

  • date
    Ein Ausdruck, der in einen time-Wert, date-Wert, smalldatetime-Wert, datetime-Wert, datetime2-Wert oder datetimeoffset-Wert aufgelöst werden kann. date kann ein Ausdruck, ein Spaltenausdruck, eine benutzerdefinierte Variable oder ein Zeichenfolgenliteral sein.

    Verwenden Sie vierstellige Jahreszahlen, um Mehrdeutigkeit zu vermeiden. Informationen zu zweistelligen Jahreszahlen finden Sie unter Konfigurieren der Serverkonfigurationsoption Umstellungsjahr für Angaben mit zwei Ziffern.

Rückgabetyp

nvarchar

Rückgabewert

  • Jedes datepart-Argument und die zugehörigen Abkürzungen geben denselben Wert zurück.

Der Rückgabewert hängt von der Sprachumgebung ab, die durch SET LANGUAGE und durch die Konfigurieren der Serverkonfigurationsoption Standardsprache der Anmeldung festgelegt wurde. Der Rückgabewert hängt von der Option SET DATEFORMAT ab, wenn date ein Zeichenfolgenliteral einiger Formate darstellt. SET DATEFORMAT wirkt sich nicht auf den Rückgabewert aus, wenn das Datum ein Spaltenausdruck für Daten vom Typ Datum oder Uhrzeit darstellt.

Wenn der date-Parameter ein date-Datentypargument aufweist, hängt der Rückgabewert von der Einstellung ab, die mit SET DATEFIRST angegeben wurde.

datepart-Argumentdes Typs TZoffset

Wenn das datepart-Argument TZoffset (tz) lautet und das date-Argument über keinen Zeitzonenoffset verfügt, wird NULL zurückgegeben.

date-Argument des Typs smalldatetime

Wenn date den Wert smalldatetime aufweist, werden Sekunden als 00 zurückgegeben.

Zurückgeben des Standardwerts für ein datepart-Argument, das nicht im date-Argument enthalten ist

Enthält der Datentyp im date-Argument keine Angabe zu datepart, wird für datepart nur der Standardwert zurückgegeben, wenn für date ein Literal angegeben ist.

Beispielsweise wird bei Jahr-Monat-Tag für jeden date-Datentyp standardmäßig der Wert 1900-01-01 angegeben. Die folgende Anweisung verfügt über datepart-Argumente für datepart, ein time-Argument für date und gibt 1900, January, 1, 1, Monday zurück.

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');

Wenn date als Variable oder Tabellenspalte angegeben ist und der Datentyp für diese Variable oder Spalte nicht über das angegebene datepart verfügt, wird der Fehler 9810 zurückgegeben. Im folgenden Codebeispiel tritt ein Fehler auf, weil das year-Datumsteil für den für die @t-Variable deklarierten time-Datentyp nicht gültig ist.

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

Hinweise

DATENAME kann in den Klauseln WHERE, HAVING, GROUP BY und ORDER BY der SELECT-Liste verwendet werden.

In SQL Server 2012 wandelt DATENAME Zeichenfolgenliterale implizit als datetime2-Typen um. Daher unterstützt DATENAME das Format YDM nicht, wenn das Datum als Zeichenfolge übergeben wird. Sie müssen die Zeichenfolge explizit in den datetime-Typ oder smalldatetime-Typ umwandeln, um das YDM-Format zu verwenden.

Beispiele

Im folgenden Beispiel werden die Datumsteile für das angegebene Datum zurückgegeben.

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

Dies ist das Resultset.

datepart

Rückgabewert

year, yyyy, yy

2007

quarter, qq, q

4

month, mm, m

October

dayofyear, dy, y

303

day, dd, d

30

week, wk, ww

44

weekday, dw

Dienstag

hour, hh

12

minute, n

15

second, ss, s

32

millisecond, ms

123

microsecond, mcs

123456

nanosecond, ns

123456700

TZoffset, tz

310

ISO_WEEK, ISOWK, ISOWW

44

Siehe auch

Verweis

CAST und CONVERT (Transact-SQL)