Problem:
Sie möchten einem Datum in T-SQL eine bestimmte Anzahl von Tagen hinzufügen.
Beispiel:
Unsere Datenbank hat eine Tabelle namens Flight
mit Daten in den Spalten Code
und DepartureDate
.
Code | Abreisedatum |
---|---|
LT2030 | 2019-02-20 |
GH1100 | 01.03.2019 |
SR5467 | 2019-12-30 |
Lassen Sie uns das Abflugdatum für alle Flüge ändern und das aktuelle Abflugdatum um zwei Tage verlängern.
Lösung:
Wir werden die Funktion DATEADD() verwenden, um die hinzuzufügende Zeiteinheit anzugeben, zu definieren, wie viel hinzugefügt werden soll, und das zu ändernde Datum auszuwählen. Sehen Sie sich die Abfrage an:
SELECT Code, DATEADD(day, 2, DepartureDate) AS ChangedDepartureDate FROM Flight;
Hier ist das Ergebnis:
Code | Geändertes Abreisedatum |
---|---|
LT2030 | 22.02.2019 |
GH1100 | 2019-03-03 |
SR5467 | 2020-01-01 |
Diskussion:
Um ein Datum und/oder eine Uhrzeit durch Hinzufügen einer bestimmten Zahl einer ausgewählten Zeiteinheit zu ändern, verwenden Sie die Funktion DATEADD() von SQL Server. Diese Funktion arbeitet mit Datums-, Uhrzeit- oder Datums- und Uhrzeitdatentypen. Es braucht drei Argumente:
- Die gewünschte hinzuzufügende Datums-/Uhrzeiteinheit. In unserem Beispiel ist es Tag; wir wollen dem Datum Tage hinzufügen.
- Wie viele Einheiten hinzugefügt werden sollen. In unserem Beispiel ist dies 2; Wir möchten 2 Tage zum bestehenden Datum hinzufügen.
- Eine Spalte, die Datum/Uhrzeit/DatumUhrzeit enthält, die wir ändern möchten. (In unserem Beispiel verwenden wir die Spalte DepartureDate.) Dieses Argument kann auch ein Ausdruck sein, der Datum/Uhrzeit/Datum/Uhrzeit zurückgibt.
Die Funktion DATEADD() gibt ein neues Datum zurück. In unserem Beispiel wird das neue Datum als ChangedDepartureDate
zurückgegeben Säule. Für den Flugcode „LT2030“ lautet das Datum „20.02.2019“ jetzt „22.02.2019“.
Die Funktion DATEADD() kann Datums- und Zeiteinheiten wie year
verwenden , quarter
, month
, dayofyear
, day
, week
, weekday
, hour
, minute
, second
usw. Weitere Informationen finden Sie in der SQL Server-Dokumentation.