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

5 Möglichkeiten, den kurzen Monatsnamen von einem Datum in SQL Server zu erhalten

Wenn Sie mit SQL Server (oder einem anderen DBMS) arbeiten, müssen Sie manchmal den Kurznamen für einen Monat zurückgeben. Damit meine ich die 3-Buchstaben-Abkürzung eines Monats. Zum Beispiel brauchen Sie „Dez“ statt „Dezember“.

Hier sind vier Möglichkeiten, wie Sie den abgekürzten Monatsnamen aus einem Datum in SQL Server extrahieren können.

Die FORMAT()-Funktion

Das FORMAT() Funktion ist seit SQL Server 2012 verfügbar und ist die prägnanteste Art, den Monat als Abkürzung mit 3 Buchstaben zurückzugeben.

Hier ist ein Beispiel dafür, wie es funktioniert:

DECLARE @date datetime2 = '2000-01-01';
SELECT FORMAT(@date, 'MMM') AS 'FORMAT';

Ergebnis:

FORMAT
------
Jan   

Die erste Zeile deklariert einfach eine Variable und weist ihr ein Datum zu. In der zweiten Zeile geben wir den kurzen Monatsnamen aus dem Datum zurück.

Die Funktionen CAST() und DATENAME()

Diese Option wandelt das Datum in CHAR(3) um , wodurch alle Zeichen abgeschnitten werden, die den ersten drei folgen.

Hier ist ein Beispiel:

DECLARE @date datetime2 = '2000-01-01';
SELECT CAST(DATENAME(month, @date) AS CHAR(3)) AS 'CAST/DATENAME';

Ergebnis:

CAST/DATENAME
-------------
Jan          

Die Funktionen LEFT() und DATENAME()

Diese Option ähnelt der vorherigen, außer dass sie LEFT() verwendet Funktion, um die 3 Zeichen ganz links vom Datum zu übernehmen.

Beispiel:

DECLARE @date datetime2 = '2000-01-01';
SELECT LEFT(DATENAME(month, @date), 3) AS 'LEFT/DATENAME';

Ergebnis:

LEFT/DATENAME
-------------
Jan          

Die Funktionen LEFT() und CONVERT()

Diese Option wandelt das Datum in varchar um und übernimmt dann die ersten drei Zeichen.

Beispiel:

DECLARE @date datetime2 = '2000-01-01';
SELECT LEFT(CONVERT(varchar, @date, 100), 3) AS 'LEFT/CONVERT';

Ergebnis:

LEFT/CONVERT
------------
Jan         

In diesem Beispiel die 100 -Argument gestaltet das Datum so, dass es das folgende Format hat:mon dd yyyy hh:miAM (oder PM) . In unserem Fall lautet das Datum also 1. Januar 2000 00:00 Uhr .

Von dort aus müssen Sie nur noch die ersten drei Buchstaben mit LEFT() wegschneiden Funktion.

Die Funktionen LEFT() und MONTHNAME()

Diese Option verwendet den MONTHNAME() ODBC-Skalarfunktion zur Rückgabe des Monatsnamens. Und wie bei den beiden vorherigen Beispielen extrahieren wir einfach die ersten drei Buchstaben des Monatsnamens.

Beispiel:

DECLARE @date datetime2 = '2000-01-01';
SELECT LEFT({fn MONTHNAME(@date)}, 3) AS 'LEFT/MONTHNAME';

Ergebnis:

LEFT/MONTHNAME
--------------
Jan