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

Come formattare la data e l'ora in SQL Server

In SQL Server è possibile utilizzare T-SQL FORMAT() funzione per formattare la data e/o l'ora. Fornisci semplicemente due argomenti; la data/ora e il formato da utilizzare.

Il formato viene fornito come stringa di formato. Una stringa di formato definisce come formattare l'output.

Il FORMAT() La funzione accetta anche un argomento "cultura" facoltativo, che ti consente di specificare una lingua/locale a cui devono aderire i risultati.

Esempio di base

Ecco un esempio di base dell'utilizzo di FORMAT() funzione per formattare una data.

Data grezza

Innanzitutto, ecco come appare la data grezza. Se eseguiamo la seguente istruzione:

SELECT GETDATE();

Otteniamo un risultato simile a questo:

2018-05-03 02:36:54.480

Data formattata

Ora possiamo usare il FORMAT() funzione per formattare la data e l'ora nel nostro formato preferito. Ad esempio, potremmo fare questo:

SELECT FORMAT( GETDATE(), 'D');

Il che si traduce in questo:

Thursday, May 3, 2018

Questo è solo uno dei tanti formati che potremmo scegliere. Eccone un altro:

SELECT FORMAT( GETDATE(), 'd');

Il che si traduce in questo:

5/3/2018

I risultati effettivi varieranno a seconda della cultura utilizzata. Per impostazione predefinita, viene utilizzata la lingua della sessione corrente, ma puoi anche sovrascriverla con un terzo argomento ("cultura").

Impostazione di una lingua

Potremmo aggiungere un terzo argomento ("cultura") al codice sopra per determinare le impostazioni locali da utilizzare per il formato della data.

Quindi potremmo farlo ad esempio:

SELECT FORMAT( GETDATE(), 'd', 'en-gb');

Il che si traduce in questo:

03/05/2018

Ecco un altro esempio:

SELECT FORMAT( GETDATE(), 'd', 'zh-cn');

Il che si traduce in questo:

5/3/2018

Se la cultura non viene fornito l'argomento, viene utilizzata la lingua della sessione corrente.

Ecco come trovare la lingua della sessione corrente ed ecco come impostarla.

Tieni presente che la lingua corrente sarà solitamente la stessa della lingua predefinita dell'utente, ma ciò potrebbe non essere il caso se l'utente ha modificato la lingua corrente utilizzando SET LANGUAGE . In ogni caso, puoi anche scoprire qual è la lingua predefinita.

Come puoi immaginare, potresti ottenere risultati abbastanza diversi a seconda della tua lingua corrente o del valore di qualsiasi argomento di "cultura". Vedi come le impostazioni della lingua possono influire sui risultati di FORMAT() per altri esempi.

Estrazione del mese/settimana/anno

Puoi usare il FORMAT() funzione per restituire solo la parte del mese della data, oppure la settimana o l'anno come richiesto.

Si noti che fanno distinzione tra maiuscole e minuscole. Ad esempio, MMM formatta il mese in modo diverso in mmm .

Mese

Esempio di codice per la restituzione della parte del mese:

SELECT FORMAT( GETDATE(), 'MMM');

Risultato:

May

Anno

Esempio di codice per la restituzione della parte dell'anno:

SELECT FORMAT( GETDATE(), 'yyyy');

Risultato:

2018

Giorno

Esempio di codice per la restituzione della parte giorno:

SELECT FORMAT( GETDATE(), 'dddd');

Risultato:

Thursday

Estrarre il tempo

Puoi anche utilizzare il FORMAT() funzione per restituire l'ora in un formato specificato.

Ecco un esempio:

SELECT FORMAT( GETDATE(), 'hh.mm');

Risultato:

03.37

Il designatore AM/PM

Puoi anche aggiungere tt per includere il designatore AM/PM:

SELECT FORMAT( GETDATE(), 'hh.mm tt');

Risultato:

03.37 AM

Combinazione di stringhe di formato

Puoi anche combinare queste stringhe di formato per fornire il tuo formato di data personalizzato. Esempio:

SELECT FORMAT( GETDATE(), 'hh.mm tt dddd, dd MMMM, yyyy');

Risultato:

03.41 AM Thursday, 03 May, 2018

Riferimento agli identificatori di formato di data e ora

Gli articoli seguenti contengono tutti gli identificatori di formato di data e ora che possono essere utilizzati con FORMAT() funzione in SQL Server, insieme agli esempi T-SQL:

  • Stringhe di formato di data e ora standard
  • Stringhe di formato di data e ora personalizzate

Questi sono gli stessi identificatori di formato di data e ora supportati da .NET Framework (il FORMAT() la funzione si basa su .NET Framework).

Riferimento agli identificatori di formato numerico

Gli articoli seguenti contengono tutti gli identificatori di formato numerico che puoi utilizzare con FORMAT() funzione (cioè per la formattazione dei numeri):

  • Stringhe di formato numerico standard
  • Stringhe di formato numerico personalizzate

Questi sono gli stessi identificatori di formato numerici supportati da .NET Framework.

Altre funzioni di data

T-SQL include anche un sacco di altre funzioni che ti aiutano a estrarre parti dalle date. Questi includono funzioni come DAY() , MONTH() , YEAR() , DATEPART() e DATENAME() .