Problema:
Vorresti aggiungere un determinato numero di giorni a una data in T-SQL.
Esempio:
Il nostro database ha una tabella denominata Flight
con i dati nelle colonne Code
e DepartureDate
.
Codice | Data di partenza |
---|---|
LT2030 | 20-02-2019 |
GH1100 | 01-03-2019 |
SR5467 | 30-12-2019 |
Modifichiamo la data di partenza per tutti i voli, aggiungendo due giorni alla data di partenza attuale.
Soluzione:
Utilizzeremo la funzione DATEADD() per specificare l'unità di tempo da aggiungere, definire quanto aggiungere e selezionare la data da modificare. Dai un'occhiata alla domanda:
SELECT Code, DATEADD(day, 2, DepartureDate) AS ChangedDepartureDate FROM Flight;
Ecco il risultato:
Codice | Data di partenza modificata |
---|---|
LT2030 | 22-02-2019 |
GH1100 | 03-03-2019 |
SR5467 | 01-01-2020 |
Discussione:
Per modificare una data e/o un'ora aggiungendo un numero specifico di un'unità di tempo scelta, utilizzare la funzione DATAADD() di SQL ServerSQL Server. Questa funzione funziona sui tipi di dati di data, ora o data e ora. Occorrono tre argomenti:
- L'unità di data/ora desiderata da aggiungere. Nel nostro esempio, è giorno; vogliamo aggiungere giorni alla data.
- Quante unità aggiungere. Nel nostro esempio, questo è 2; vogliamo aggiungere 2 giorni alla data esistente.
- Una colonna contenente la data/ora/dataora che vogliamo modificare. (Nel nostro esempio, utilizziamo la colonna PartenzaDate.) Questo argomento può anche essere un'espressione che restituisce una data/ora/dataora.
La funzione DATAADD() restituisce una nuova data. Nel nostro esempio, la nuova data viene restituita come ChangedDepartureDate
colonna. Per il codice di volo "LT2030", la data "20-02-2019" è ora "22-02-2019".
La funzione DATEADD() può utilizzare unità di data e ora come year
, quarter
, month
, dayofyear
, day
, week
, weekday
, hour
, minute
, second
, ecc. Puoi saperne di più nella documentazione di SQL Server.