Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

5 façons d'obtenir le nom court du mois à partir d'une date dans SQL Server

Parfois, lorsque vous travaillez avec SQL Server (ou tout autre SGBD d'ailleurs), vous devez renvoyer le nom court pendant un mois. J'entends par là l'abréviation de 3 lettres d'un mois. Par exemple, vous avez besoin de "déc" au lieu de "décembre".

Voici quatre façons d'extraire le nom de mois raccourci d'une date dans SQL Server.

La fonction FORMAT()

Le FORMAT() est disponible depuis SQL Server 2012, et c'est le moyen le plus concis de renvoyer le mois sous la forme d'une abréviation de 3 lettres.

Voici un exemple de son fonctionnement :

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

Résultat :

FORMAT
------
Jan   

La première ligne déclare simplement une variable et lui attribue une date. La deuxième ligne est l'endroit où nous renvoyons le nom court du mois à partir de la date.

Les fonctions CAST() et DATENAME()

Cette option convertit la date en CHAR(3) , coupant ainsi tous les caractères qui suivent les trois premiers.

Voici un exemple :

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

Résultat :

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

Les fonctions LEFT() et DATENAME()

Cette option est similaire à la précédente, sauf qu'elle utilise le LEFT() fonction pour prendre les 3 caractères les plus à gauche de la date.

Exemple :

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

Résultat :

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

Les fonctions LEFT() et CONVERT()

Cette option convertit la date en varchar, puis prend les trois premiers caractères.

Exemple :

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

Résultat :

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

Dans cet exemple, le 100 l'argument stylise la date de sorte qu'elle soit au format suivant :lun jj aaaa hh:miAM (ou PM) . Ainsi, dans notre cas, la date est stylisée comme 1er janvier 2000 12h00 .

À partir de là, il suffit de couper les trois premières lettres avec le LEFT() fonction.

Les fonctions LEFT() et MONTHNAME()

Cette option utilise le MONTHNAME() Fonction scalaire ODBC pour renvoyer le nom du mois. Et comme pour les deux exemples précédents, nous extrayons simplement les trois premières lettres de ce nom de mois.

Exemple :

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

Résultat :

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