- 29.07.2017
- 3 Minuten zu lesen
-
- c
- j
- r
- M
- M
-
+9
Gilt für: SQL Server (alle unterstützten Versionen) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Parallel Data Warehouse
Diese Funktion gibt eine Zeichenkette zurück, die den angegebenen Datumsanteil des angegebenen Datums darstellt.
Siehe Datum- und Zeitdatentypen und -funktionen (Transact-SQL) für eine Übersicht über alle Transact-SQL-Datentypen und -Funktionen.
Transact-SQL-Syntaxkonventionen
Syntax
DATENAME ( datepart , date )
Hinweis
Um die Transact-SQL-Syntax für SQL Server 2014 und früher anzuzeigen, siehe Dokumentation zu früheren Versionen.
Argumente
datepart
Der spezifische Teil des Datumsarguments, den DATENAME
zurückgibt. Diese Tabelle listet alle gültigen datepart-Argumente auf.
Anmerkung
DATENAME
akzeptiert keine benutzerdefinierten Variablenäquivalente für die datepart-Argumente.
Datumsteil | Abkürzungen | Jahr | JJ, yyyy |
---|---|
Quartal | qq, q | Monat | mm, m |
Jahrestag | dy, y |
Tag | dd, d | Woche | wk, ww | Wochentag | dw, w |
Stunde | h |
Minute | mi, n | Sekunde | ss, s |
Millisekunde | ms | Mikrosekunde | mcs | Nanosekunde | ns |
TZoffset | tz | ISO_WEEK | ISOWK, ISOWW |
date
Ein Ausdruck, der sich in einen der folgenden Datentypen auflösen lässt:
- Datum
- Datetime
- Datetimeoffset
- datetime2
- smalldatetime
- time
Für Datum akzeptiert DATENAME
einen Spaltenausdruck, einen Ausdruck, ein Stringliteral oder eine benutzerdefinierte Variable. Verwenden Sie vierstellige Jahreszahlen, um Mehrdeutigkeitsprobleme zu vermeiden. Informationen über zweistellige Jahreszahlen finden Sie unter Konfigurieren der Serverkonfigurationsoption für zweistellige Jahreszahlen.
Rückgabetyp
nvarchar
Rückgabewert
- Jeder Datumsteil und seine Abkürzungen geben denselben Wert zurück.
Der Rückgabewert hängt von der Sprachumgebung ab, die mit SET LANGUAGE und der Serverkonfigurationsoption für die Anmeldung konfiguriert wurde. Der Rückgabewert hängt von SET DATEFORMAT ab, wenn das Datum ein Stringliteral mit bestimmten Formaten ist. SET DATEFORMAT ändert den Rückgabewert nicht, wenn das Datum ein Spaltenausdruck eines Datums- oder Zeitdatentyps ist.
Wenn der Datumsparameter ein Datumsdatentypargument hat, hängt der Rückgabewert von der Einstellung ab, die durch SET DATEFIRST angegeben wurde.
TZoffset Datumsteil Argument
Wenn das Datumsteilargument TZoffset (tz) ist und das Datumargument keinen Zeitzonenoffset hat, gibt DATEADD
0 zurück.
smalldatetime date Argument
Wenn date smalldatetime ist, gibt DATENAME
Sekunden als 00 zurück.
Vorgabe für einen nicht im Datumsargument enthaltenen Datenteil
Wenn der Datentyp des Datumsarguments nicht den angegebenen Datenteil enthält, gibt DATENAME
die Vorgabe für diesen Datenteil nur zurück, wenn das Datumsargument ein Literal enthält.
Zum Beispiel ist die Vorgabe Jahr-Monat-Tag für jeden Datumsdatentyp 1900-01-01. Diese Anweisung hat Datumsteilargumente für Datumsteil, ein Zeitargument für Datum, und DATENAME
gibt 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');
Wenn Datum als Variable oder Tabellenspalte angegeben ist und der Datentyp für diese Variable oder Spalte nicht den angegebenen Datumsteil hat, gibt DATENAME
Fehler 9810 zurück. In diesem Beispiel hat die Variable @t einen Zeit-Datentyp. Das Beispiel schlägt fehl, weil der Datumsteil Jahr für den Datentyp Zeit ungültig ist:
DECLARE @t time = '12:10:30.123'; SELECT DATENAME(year, @t);
Bemerkungen
Verwenden Sie DATENAME
in den folgenden Klauseln:
- GROUP BY
- HAVING
- ORDER BY
- SELECT <list>
- WHERE
In SQL Server werden String-Literale durch DATENAME implizit in einen datetime2-Typ umgewandelt. Mit anderen Worten, DATENAME
unterstützt nicht das Format YDM, wenn das Datum als String übergeben wird. Sie müssen die Zeichenfolge explizit in einen datetime- oder smalldatetime-Typ umwandeln, um das YDM-Format zu verwenden.
Beispiele
Dieses Beispiel gibt die Datumsteile für das angegebene Datum zurück. Ersetzen Sie einen Datumswert aus der Tabelle für das Argument datepart
in der SELECT-Anweisung:
SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');
Hier ist die Ergebnismenge.
Datenteil | Rückgabewert |
---|---|
Jahr, jjjj, jj | 2007 |
Quartal, qq, q | 4 |
Monat, mm, m | Oktober |
Tag des Jahres, dy, y | 303 | Tag, dd, d | 30 | Woche, wk, ww | 44 | Wochentag, dw | Dienstag |
Stunde, hh | 12 |
Minute, n | 15 | Sekunde, ss, s | 32 | Millisekunde, ms | 123 |
Mikrosekunde, mcs | 123456 |
Nanosekunde, ns | 123456700 | TZ-Versatz, tz | +05:10 |
ISO_WEEK, ISOWK, ISOWW | 44 |
Azure Synapse Analytics and Parallel Data Warehouse
Dieses Beispiel gibt die Datumsteile für das angegebene Datum zurück. Ersetzen Sie einen Datumswert aus der Tabelle für das Argument datepart
in der SELECT-Anweisung:
SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');
Hier ist die Ergebnismenge.
Datumsteil | Rückgabewert |
---|---|
Jahr, jjjj, jj | 2007 |
Quartal, qq, q | 4 |
Monat, mm, m | Oktober |
Tag des Jahres, dy, y | 303 | Tag, dd, d | 30 | Woche, wk, ww | 44 | Wochentag, dw | Dienstag |
Stunde, hh | 12 |
Minute, n | 15 | Sekunde, ss, s | 32 | Millisekunde, ms | 123 |
Mikrosekunde, mcs | 123456 |
Nanosekunde, ns | 123456700 | TZ-Versatz, tz | +05:10 |
ISO_WEEK, ISOWK, ISOWW | 44 |
Siehe auch
CAST und CONVERT (Transact-SQL)