Probleem:
U wilt een bepaald aantal dagen toevoegen aan een datum in T-SQL.
Voorbeeld:
Onze database heeft een tabel met de naam Flight
met gegevens in de kolommen Code
en DepartureDate
.
Code | Vertrekdatum |
---|---|
LT2030 | 2019-02-20 |
GH1100 | 2019-03-01 |
SR5467 | 2019-12-30 |
Laten we de vertrekdatum voor alle vluchten wijzigen en twee dagen toevoegen aan de huidige vertrekdatum.
Oplossing:
We zullen de functie DATEADD() gebruiken om de tijdseenheid op te geven die moet worden toegevoegd, te definiëren hoeveel er moet worden toegevoegd en de datum te selecteren die moet worden gewijzigd. Bekijk de vraag:
SELECT Code, DATEADD(day, 2, DepartureDate) AS ChangedDepartureDate FROM Flight;
Dit is het resultaat:
Code | Gewijzigde vertrekdatum |
---|---|
LT2030 | 2019-02-22 |
GH1100 | 03-03-2019 |
SR5467 | 2020-01-01 |
Discussie:
Om een datum en/of tijd te wijzigen door een specifiek nummer van een gekozen tijdseenheid toe te voegen, gebruikt u de functie DATEADD() van SQL Server. Deze functie werkt op datum-, tijd- of datum- en tijdgegevenstypen. Er zijn drie argumenten nodig:
- De gewenste eenheid van datum/tijd die moet worden toegevoegd. In ons voorbeeld is het dag; we willen dagen aan de datum toevoegen.
- Hoeveel eenheden toe te voegen. In ons voorbeeld is dit 2; we willen 2 dagen toevoegen aan de bestaande datum.
- Een kolom met de datum/tijd/datum/tijd die we willen wijzigen. (In ons voorbeeld gebruiken we de kolom DepartureDate.) Dit argument kan ook een expressie zijn die een datum/tijd/datumtijd retourneert.
De functie DATEADD() retourneert een nieuwe datum. In ons voorbeeld wordt de nieuwe datum geretourneerd als de ChangedDepartureDate
kolom. Voor de vluchtcode ‘LT2030’ is de datum ‘2019-02-20’ nu ‘2019-02-22’.
De functie DATEADD() kan datum- en tijdeenheden gebruiken, zoals year
, quarter
, month
, dayofyear
, day
, week
, weekday
, hour
, minute
, second
, enz. U kunt meer leren in de SQL Server-documentatie.