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 die zugehörigen Funktionen von Transact-SQL finden Sie unter Datums- und Uhrzeitdatentypen und zugehörige Funktionen (Transact-SQL). Informationen und Beispiele, die für alle Datums- und Uhrzeitdatentypen und zugehörige Funktionen gelten, finden Sie unter Verwenden von Datums- und Zeitdaten.
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
hour
hh
minute
mi, n
second
ss, s
millisecond
ms
microsecond
mcs
nanosecond
ns
TZoffset
tz
date
Ein Ausdruck, der in einen time-Wert, einen date-Wert, einen smalldatetime-Wert, einen datetime-Wert, einen datetime2-Wert oder einen datetimeoffset-Wert aufgelöst werden kann. Bei date kann es sich um einen Ausdruck, einen Spaltenausdruck, eine benutzerdefinierte Variable oder ein Zeichenfolgenliteral handeln.Verwenden Sie vierstellige Jahreszahlen, um Mehrdeutigkeit zu vermeiden. Informationen zu zweistelligen Jahreszahlen finden Sie unter two digit year cutoff (Option).
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 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.
Bei Versionen von SQL Server, die höher als SQL Server 2000 sind, hängt der Rückgabewert von den Einstellungen unter SET DATEFIRST ab, wenn der date-Parameter ein date-Datentypargument aufweist.
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 der Standardwert zurückgegeben.
Beispielsweise wird bei Jahr-Monat-Tag für jeden date-Datentyp standardmäßig der Wert 01900-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');
Bei Stunde-Minute-Sekunde wird für den time-Datentyp standardmäßig der Wert 00:00:00 angegeben. Die folgende Anweisung verfügt über timepart-Argumente für datepart, ein date-Argument für date und gibt 0, 0, 0 zurück.
SELECT DATENAME(hour, '2007-06-01')
,DATENAME(minute, '2007-06-01')
,DATENAME(second, '2007-06-01');
Hinweise
DATENAME kann in den Klauseln WHERE, HAVING, GROUP BY und ORDER BY der SELECT-Liste verwendet werden. In SQL Server 2008 wandelt DATENAME Zeichenfolgeliterale implizit in datetime2-Typen um. Vermeiden Sie bei der Verwendung von DATENAME mit DATEADD die implizite Umwandlung von Zeichenfolgeliteralen. Weitere Informationen finden Sie unter DATEADD (Transact-SQL).
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 |
Tuesday |
hour, hh |
12 |
minute, n |
15 |
second, ss, s |
32 |
millisecond, ms |
123 |
microsecond, mcs |
123456 |
nanosecond, ns |
123456700 |
TZoffset, tz |
310 |