Articles

.Guida

Posted by admin

Transact-SQL include una serie di funzioni che ci aiutano a lavorare con date e orari. Una delle attività più comuni quando si lavora con le date è estrarre le diverse parti della data. Ad esempio, a volte vogliamo solo l’anno o il mese. Altre volte potremmo volere il giorno della settimana. In entrambi i casi, ci sono molti modi per farlo in SQL Server.

In particolare, le seguenti funzioni consentono di restituire il giorno, il mese e l’anno da una data in SQL Server.,

  • DAY() MONTH() e YEAR()
  • DATEPART()
  • DATENAME()
  • FORMAT()

Queste funzioni sono illustrate di seguito.

Le funzioni DAY(), MONTH () e YEAR ()

Il modo più ovvio per restituire il giorno, il mese e l’anno da una data è utilizzare le funzioni T-SQL con lo stesso nome. Sì, T-SQL ha funzioni create appositamente allo scopo di restituire questi tre datepart.,

Ecco un esempio di come funzionano:

DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';SELECT DAY(@date) AS DAY, MONTH(@date) AS MONTH, YEAR(@date) AS YEAR;

Risultato:

+-------+---------+--------+| DAY | MONTH | YEAR ||-------+---------+--------|| 2 | 6 | 2018 |+-------+---------+--------+

Queste funzioni restituiscono la datepart come un numero intero. Restituiscono lo stesso risultato che la funzione DATEPART() restituisce per il datepart specificato.

La funzione DATEPART ()

La funzioneDATEPART() è stata creata appositamente per restituire parti specificate di una data., Pertanto, possiamo usare questa funzione per restituire esattamente lo stesso risultato dell’esempio precedente:

Risultato:

+-------+-----------+---------+--------+| DAY | WEEKDAY | MONTH | YEAR ||-------+-----------+---------+--------|| 2 | 7 | 6 | 2018 |+-------+-----------+---------+--------+

Un vantaggio dell’utilizzo di questa funzione è che puoi anche restituire altre parti della data e dell’ora. Come puoi vedere con questo esempio, ho restituito il giorno della settimana e il giorno (dayè il giorno del mese, weekday è il giorno della settimana). È inoltre possibile restituire le varie parti temporali, come minuti, secondi, millisecondi, ecc. Per ulteriori esempi, vedereDATEPART() Esempi in SQL Server.,

La funzione DATEPART() restituisce il risultato come un numero intero e, pertanto, non sarà possibile ottenere il nome del mese o il nome del giorno della settimana dalla data. Ma non preoccuparti, puoi usare le funzioniDATENAME() oFORMAT() per questo.

La funzione DATENAME ()

La funzioneDATENAME() è simile alla funzioneDATEPART(), tranne per il fatto che restituisce il risultato come una stringa di caratteri anziché un numero intero., DATENAME() restituisce anche mese e giorno della settimana come nome completo, piuttosto che il loro valore numerico.

Esempio:

Risultato:

+-------+-----------+---------+--------+| DAY | WEEKDAY | MONTH | YEAR ||-------+-----------+---------+--------|| 2 | Saturday | June | 2018 |+-------+-----------+---------+--------+

Per ulteriori esempi di questa funzione, vedereDATENAME() Esempi in SQL Server.

La funzione FORMAT ()

Possiamo usare la funzione FORMAT() per restituire gli stessi valori della funzione DATENAME() e altro ancora.

Questa è una funzione più versatile rispetto alle precedenti. Esso consente di formattare data / ora e valori numerici come stringhe., Il valore restituito è nvarchar o null (a seconda dell’input) e la lunghezza della stringa è determinata dal formato specificato.

FORMAT() fornisce anche più opzioni per come viene presentato il datepart. È possibile specificare se visualizzarlo come un singolo carattere, due caratteri, tre, quattro e anche cinque in alcuni casi.

Ecco alcuni esempi da dimostrare.,

Giorno

Risultato:

+-----+------+-------+----------+| d | dd | ddd | dddd ||-----+------+-------+----------|| 2 | 02 | Sat | Saturday |+-----+------+-------+----------+

Mese

Risultato:

+-----+------+-------+--------+| M | MM | MMM | MMMM ||-----+------+-------+--------|| 6 | 06 | Jun | June |+-----+------+-------+--------+

Anno

Risultato:

+-----+------+-------+--------+---------+| y | yy | yyy | yyyy | yyyyy ||-----+------+-------+--------+---------|| 18 | 18 | 2018 | 2018 | 02018 |+-----+------+-------+--------+---------+

si Noti che abbiamo l’opzione di formattazione anno porzione di cinque cifre.

Informazioni sul numero di cifre

Quando si restituisce un datepart in forma di cifre, l’identificatore di formato determina il numero minimo di cifre da restituire., Ad esempio, quando si utilizza yyy, l’anno verrà restituito come tre cifre se l’anno è 0008 ma come quattro cifre se l’anno è 2008.

Esempio:

Risultato:

+-----+------+-------+--------+---------+| y | yy | yyy | yyyy | yyyyy ||-----+------+-------+--------+---------|| 8 | 08 | 008 | 0008 | 00008 |+-----+------+-------+--------+---------+

Inoltre, quando si utilizza la singola opzione (ad esempiod) come specificatore di data, è necessario aggiungere uno spazio se si desidera solo che datepart restituisca da solo. Se non lo fai, otterrai più di quel singolo datepart.,

Esempio:

Risultato:

+---------+------------+---------+------------+---------+------------+| Space | No Space | Space | No Space | Space | No Space ||---------+------------+---------+------------+---------+------------|| 2 | 6/2/2008 | 6 | June 2 | 8 | June 2008 |+---------+------------+---------+------------+---------+------------+

Per ulteriori esempiFORMAT(), vedere Come formattare la data e l’ora in SQL Server.

Leave A Comment