Problème :
Vous souhaitez ajouter un nombre donné de jours à une date dans T-SQL.
Exemple :
Notre base de données contient une table nommée Flight
avec des données dans les colonnes Code
et DepartureDate
.
Code | Date de départ |
---|---|
LT2030 | 2019-02-20 |
GH1100 | 2019-03-01 |
SR5467 | 2019-12-30 |
Modifions la date de départ de tous les vols, en ajoutant deux jours à la date de départ actuelle.
Solution :
Nous allons utiliser la fonction DATEADD() pour spécifier l'unité de temps à ajouter, définir la quantité à ajouter et sélectionner la date à modifier. Jetez un oeil à la requête :
SELECT Code, DATEADD(day, 2, DepartureDate) AS ChangedDepartureDate FROM Flight;
Voici le résultat :
Code | ChangedDepartureDate |
---|---|
LT2030 | 2019-02-22 |
GH1100 | 2019-03-03 |
SR5467 | 2020-01-01 |
Discussion :
Pour modifier une date et/ou une heure en ajoutant un nombre spécifique d'une unité de temps choisie, utilisez la fonction DATEADD() de SQL Server. Cette fonction fonctionne sur les types de données date, heure ou date et heure. Il prend trois arguments :
- L'unité de date/heure souhaitée à ajouter. Dans notre exemple, il fait jour; nous voulons ajouter des jours à la date.
- Combien d'unités ajouter. Dans notre exemple, c'est 2; nous voulons ajouter 2 jours à la date existante.
- Une colonne contenant la date/heure/dateheure que nous voulons changer. (Dans notre exemple, nous utilisons la colonne DepartureDate.) Cet argument peut également être une expression qui renvoie une date/heure/dateheure.
La fonction DATEADD() renvoie une nouvelle date. Dans notre exemple, la nouvelle date est renvoyée sous la forme ChangedDepartureDate
colonne. Pour le code de vol "LT2030", la date "2019-02-20" est désormais "2019-02-22".
La fonction DATEADD() peut utiliser des unités de date et d'heure comme year
, quarter
, month
, dayofyear
, day
, week
, weekday
, hour
, minute
, second
, etc. Vous pouvez en savoir plus dans la documentation de SQL Server.