Problem:
Chcesz dodać określoną liczbę dni do daty w T-SQL.
Przykład:
Nasza baza danych zawiera tabelę o nazwie Flight
z danymi w kolumnach Code
i DepartureDate
.
Kod | Data wyjazdu |
---|---|
LT2030 | 2019-02-20 |
GH1100 | 2019-03-01 |
SR5467 | 2019-12-30 |
Zmieńmy datę wylotu dla wszystkich lotów, dodając dwa dni do aktualnej daty wylotu.
Rozwiązanie:
Użyjemy funkcji DATEADD(), aby określić jednostkę czasu do dodania, określić ilość do dodania i wybrać datę do zmiany. Spójrz na zapytanie:
SELECT Code, DATEADD(day, 2, DepartureDate) AS ChangedDepartureDate FROM Flight;
Oto wynik:
Kod | Zmieniona data wyjazdu |
---|---|
LT2030 | 22-02-2019 |
GH1100 | 2019-03-03 |
SR5467 | 2020-01-01 |
Dyskusja:
Aby zmienić datę i/lub czas poprzez dodanie określonej liczby wybranej jednostki czasu, użyj funkcji DATEADD() SQL Server. Ta funkcja działa na typach danych typu data, godzina lub data i godzina. Wymaga trzech argumentów:
- Wymagana jednostka daty/czasu do dodania. W naszym przykładzie jest to dzień; chcemy dodać dni do daty.
- Ile jednostek dodać. W naszym przykładzie jest to 2; chcemy dodać 2 dni do istniejącej daty.
- Kolumna zawierająca datę/godzinę/datagodzina, którą chcemy zmienić. (W naszym przykładzie używamy kolumny DataWyjazdu.) Ten argument może być również wyrażeniem zwracającym datę/godzinę/data-godzinę.
Funkcja DATEADD() zwraca nową datę. W naszym przykładzie nowa data jest zwracana jako ChangedDepartureDate
kolumna. W przypadku kodu lotu „LT2030” data „2019-02-20” to teraz „2019-02-22”.
Funkcja DATEADD() może używać jednostek daty i czasu, takich jak year
, quarter
, month
, dayofyear
, day
, week
, weekday
, hour
, minute
, second
itp. Więcej informacji można znaleźć w dokumentacji SQL Server.