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

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

In SQL Server, così come puoi usare T-SQL per ottenere il nome del mese da una data, puoi anche usare gli stessi metodi per ottenere il nome del giorno. Per nome del giorno intendo lunedì o martedì ad esempio, e non il numero della data o del giorno della settimana (che puoi ottenere anche se ne hai bisogno).

Ecco tre modi per restituire il nome del giorno 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 giorno da una data.

Ecco un esempio:

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

Risultato:

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

In questo caso abbiamo fornito un formato di dddd che è per il nome del giorno.

Puoi anche ottenere il nome del giorno breve fornendo ddd come secondo argomento:

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

Risultato:

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

Puoi anche fornire un argomento facoltativo per specificare le impostazioni cultura.

Ecco alcuni esempi:

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';

Risultato:

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

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 restituire il componente del giorno della settimana della data:

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

Risultato:

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

La funzione scalare ODBC DAYNAME()

Se per qualche motivo devi usare una funzione scalare ODBC, ce n'è una chiamata DAYNAME() che restituisce specificamente il nome del giorno della settimana da una data.

Esempio:

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

Risultato:

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

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