Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

5 modi per ottenere il nome del mese breve da una data in SQL Server

A volte, quando si lavora con SQL Server (o qualsiasi altro DBMS per quella materia), è necessario restituire il nome breve per un mese. Con questo intendo l'abbreviazione di 3 lettere di un mese. Ad esempio, è necessario "Dec" invece di "Dicembre".

Ecco quattro modi per estrarre il nome del mese abbreviato da una data in SQL Server.

La funzione FORMAT()

Il FORMAT() La funzione è disponibile da SQL Server 2012 ed è il modo più conciso per restituire il mese come abbreviazione di 3 lettere.

Ecco un esempio di come funziona:

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

Risultato:

FORMAT
------
Jan   

La prima riga dichiara semplicemente una variabile e le assegna una data. La seconda riga è dove restituiamo il nome breve del mese dalla data.

Le funzioni CAST() e DATENAME()

Questa opzione lancia la data come CHAR(3) , tagliando così tutti i caratteri che seguono i primi tre.

Ecco un esempio:

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

Risultato:

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

Le funzioni LEFT() e DATENAME()

Questa opzione è simile alla precedente, tranne per il fatto che utilizza il LEFT() funzione per prendere i 3 caratteri più a sinistra della data.

Esempio:

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

Risultato:

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

Le funzioni LEFT() e CONVERT()

Questa opzione converte la data in varchar, quindi prende i primi tre caratteri.

Esempio:

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

Risultato:

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

In questo esempio, il 100 argomento stilizza la data in modo che sia nel seguente formato:mon dd yyyy hh:miAM (o PM) . Quindi, nel nostro caso, la data ha lo stile di 1 gennaio 2000 00:00 .

Da lì, si tratta semplicemente di tagliare le prime tre lettere con il LEFT() funzione.

Le funzioni LEFT() e MONTHNAME()

Questa opzione utilizza il MONTHNAME() Funzione scalare ODBC per restituire il nome del mese. E come per i due esempi precedenti, estraiamo semplicemente le prime tre lettere del nome del mese.

Esempio:

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

Risultato:

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