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

3 modi per ottenere il nome del mese da una data in SQL Server (T-SQL)

Quando si utilizza SQL Server, sono disponibili alcune opzioni diverse quando è necessario restituire il nome del mese da una data utilizzando T-SQL. Per nome del mese, non sto parlando del numero del mese (come 07 ). Sto parlando del nome completo del mese (come luglio ).

Ad esempio, quando viene assegnata una data di 01-07-2018 , vuoi luglio da restituire.

Questo articolo presenta tre modi per restituire il nome del mese da una data in SQL Server utilizzando T-SQL.

La funzione FORMAT()

Il FORMAT() La funzione restituisce un valore formattato nel formato specificato e impostazioni cultura facoltative. Puoi usarlo per restituire il nome del mese da una data.

Ecco un esempio:

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

Risultato:

+----------+
| Result   |
|----------|
| July     |
+----------+

In questo caso abbiamo fornito una stringa di formato di MMMM che è una stringa di formato di data e ora personalizzata per la restituzione del nome del mese.

La cosa buona di FORMAT() la funzione è che accetta un argomento facoltativo che consente di specificare le impostazioni cultura da utilizzare.

Ecco alcuni esempi:

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

Risultato:

+---------+---------+---------+---------+
| en-US   | es-es   | de-de   | zh-cn   |
|---------+---------+---------+---------|
| July    | julio   | Juli    | 七月    |
+---------+---------+---------+---------+

Se non fornisci l'argomento cultura, viene utilizzata la lingua della sessione corrente. Se non sei sicuro della lingua utilizzata dalla sessione corrente, ecco 3 modi per ottenere la lingua della sessione corrente. Se ritieni di dover cambiare la lingua, ecco come impostarla su un'altra lingua.

Puoi anche usare il FORMAT() funzione per ottenere il nome abbreviato del mese. Per farlo, usa semplicemente MMM (tre M s invece di quattro).

Ecco un esempio che restituisce sia il nome abbreviato del mese, sia il nome completo del mese:

DECLARE @date datetime2(0) = '2028-09-01';
SELECT 
    FORMAT(@date, 'MMM', 'en-US') 'en-US',
    FORMAT(@date, 'MMM', 'es-es') 'es-es',
    FORMAT(@date, 'MMM', 'it') 'it'
UNION ALL
SELECT 
    FORMAT(@date, 'MMMM', 'en-US'),
    FORMAT(@date, 'MMMM', 'es-es'),
    FORMAT(@date, 'MMMM', 'it');

Risultato:

+-----------+------------+-----------+
| en-US     | es-es      | it        |
|-----------+------------+-----------|
| Sep       | sep.       | set       |
| September | septiembre | settembre |
+-----------+------------+-----------+

Questo è solo uno dei tanti modi per ottenere il nome abbreviato del mese da una data (sebbene questo metodo sia probabilmente il migliore). Esistono almeno altri quattro modi per restituire il nome abbreviato del mese da una data.

La funzione DATENAME()

Il DATENAME() la funzione è simile a DATEPART() funzione, tranne per il fatto che restituisce il nome della parte della data specificata (ma solo dove è applicabile un nome). Ciò significa che restituisce il nome del giorno della settimana o il nome del mese, se è quello che ti serve.

Ecco come ottenere il nome del mese con questa funzione:

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

Risultato:

+----------+
| Result   |
|----------|
| July     |
+----------+

La funzione scalare ODBC MONTHNAME()

Esiste una funzione scalare ODBC specifica per restituire il nome del mese da una data. Il suo nome è MONTHNAME() , e funziona così:

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

Risultato:

+----------+
| Result   |
|----------|
| July     |
+----------+

Quando si utilizzano funzioni scalari ODBC in T-SQL, sono racchiuse tra parentesi graffe ({} ) e il nome della funzione è preceduto da fn .

Se devi ottenere il nome breve del mese, consulta 5 modi per ottenere il nome breve del mese da una data in SQL Server.