Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

3 Möglichkeiten, den Tagesnamen von einem Datum in SQL Server (T-SQL) zu erhalten

In SQL Server können Sie genauso wie Sie T-SQL verwenden können, um den Monatsnamen aus einem Datum abzurufen, die gleichen Methoden verwenden, um den Tagesnamen abzurufen. Mit Tagesnamen meine ich Montag oder Dienstag zum Beispiel, und nicht die Nummer des Datums oder des Wochentags (die Sie bei Bedarf auch erhalten können).

Hier sind drei Möglichkeiten, den Tagesnamen von einem Datum in SQL Server mit T-SQL zurückzugeben.

Die FORMAT()-Funktion

Das FORMAT() Die Funktion gibt einen Wert zurück, der im angegebenen Format und der optionalen Kultur formatiert ist. Sie können es verwenden, um den Tagesnamen von einem Datum zurückzugeben.

Hier ist ein Beispiel:

DECLARE @date datetime2 = '2018-07-01';
SELECT FORMAT(@date, 'dddd') AS Result;

Ergebnis:

+----------+
| Result   |
|----------|
| Sunday   |
+----------+

In diesem Fall haben wir ein Format von dddd bereitgestellt das ist für den Tagesnamen.

Sie können auch den kurzen Tagesnamen erhalten, indem Sie ddd angeben als zweites Argument:

DECLARE @date datetime2 = '2018-07-01';
SELECT FORMAT(@date, 'ddd') AS Result;

Ergebnis:

+----------+
| Result   |
|----------|
| Sun      |
+----------+

Sie können auch ein optionales Argument angeben, um die Kultur anzugeben.

Hier sind einige Beispiele:

DECLARE @date datetime2 = '2018-07-01';
SELECT 
    FORMAT(@date, 'dddd', 'en-US') AS 'en-US',
    FORMAT(@date, 'dddd', 'es-es') AS 'es-es',
    FORMAT(@date, 'dddd', 'de-de') AS 'de-de',
    FORMAT(@date, 'dddd', 'zh-cn') AS 'zh-cn';

Ergebnis:

+---------+---------+---------+---------+
| en-US   | es-es   | de-de   | zh-cn   |
|---------+---------+---------+---------|
| Sunday  | domingo | Sonntag | 星期日  |
+---------+---------+---------+---------+

Die DATENAME()-Funktion

Der DATENAME() Funktion ähnelt der DATEPART() Funktion, außer dass sie den Namen zurückgibt des angegebenen Datumsteils (jedoch nur, wenn ein Name anwendbar ist). Das heißt, es gibt den Wochentagsnamen oder den Monatsnamen zurück, wenn Sie dies wünschen.

So geben Sie die Wochentagskomponente des Datums zurück:

DECLARE @date datetime2 = '2018-07-01';
SELECT DATENAME(weekday, @date) AS Result;

Ergebnis:

+----------+
| Result   |
|----------|
| Sunday   |
+----------+

Die DAYNAME() ODBC-Skalarfunktion

Wenn Sie aus irgendeinem Grund eine ODBC-Skalarfunktion verwenden müssen, gibt es eine namens DAYNAME() das speziell den Namen des Wochentags von einem Datum zurückgibt.

Beispiel:

DECLARE @date datetime2 = '2018-07-01';
SELECT {fn DAYNAME(@date)} AS Result;

Ergebnis:

+----------+
| Result   |
|----------|
| Sunday   |
+----------+

Bei Verwendung von ODBC-Skalarfunktionen in T-SQL werden sie von geschweiften Klammern umgeben ({} ) und dem Funktionsnamen wird fn vorangestellt .