Проблем:
Искате да добавите определен брой дни към дата в T-SQL.
Пример:
Нашата база данни има таблица с име Flight
с данни в колоните Code
и DepartureDate
.
Код | Дата на заминаване |
---|---|
LT2030 | 20.02.2019 |
GH1100 | 01.03.2019 |
SR5467 | 30.12.2019 |
Нека променим датата на заминаване за всички полети, като добавим два дни към текущата дата на заминаване.
Решение:
Ще използваме функцията DATEADD(), за да посочим единицата време за добавяне, да дефинираме колко да добавим и да изберем датата за промяна. Разгледайте заявката:
SELECT Code, DATEADD(day, 2, DepartureDate) AS ChangedDepartureDate FROM Flight;
Ето резултата:
Код | ChangedDepartureDate |
---|---|
LT2030 | 22.02.2019 |
GH1100 | 03.03.2019 |
SR5467 | 01.01.2020 |
Дискусия:
За да промените дата и/или час чрез добавяне на конкретен номер от избрана единица време, използвайте функцията DATEADD() на SQL Server. Тази функция работи с тип данни за дата, час или дата и час. Необходими са три аргумента:
- Желаната единица за дата/час за добавяне. В нашия пример това е ден; искаме да добавим дни към датата.
- Колко единици да добавите. В нашия пример това е 2; искаме да добавим 2 дни към съществуващата дата.
- Колона, съдържаща дата/час/дата и час, които искаме да променим. (В нашия пример използваме колоната DepartureDate.) Този аргумент може да бъде и израз, който връща дата/час/дата и час.
Функцията DATEADD() връща нова дата. В нашия пример новата дата се връща като ChangedDepartureDate
колона. За кода на полета „LT2030“ датата „2019-02-20“ вече е „2019-02-22“.
Функцията DATEADD() може да използва единици за дата и час като year
, quarter
, month
, dayofyear
, day
, week
, weekday
, hour
, minute
, second
, и т.н. Можете да научите повече в документацията на SQL Server.