Problém:
Chcete přidat daný počet dní k datu v T-SQL.
Příklad:
Naše databáze obsahuje tabulku s názvem Flight
s údaji ve sloupcích Code
a DepartureDate
.
Kód | Datum odjezdu |
---|---|
LT2030 | 20. 2. 2019 |
GH1100 | 2019-03-01 |
SR5467 | 2019-12-30 |
Změňme datum odletu pro všechny lety a k aktuálnímu datu odletu přidáme dva dny.
Řešení:
Použijeme funkci DATEADD() k určení jednotky času, která se má přidat, definujeme, kolik přidat, a vybereme datum, které se má změnit. Podívejte se na dotaz:
SELECT Code, DATEADD(day, 2, DepartureDate) AS ChangedDepartureDate FROM Flight;
Zde je výsledek:
Kód | ChangedDepartureDate |
---|---|
LT2030 | 22. 2. 2019 |
GH1100 | 2019-03-03 |
SR5467 | 2020-01-01 |
Diskuse:
Chcete-li změnit datum a/nebo čas přidáním konkrétního čísla zvolené časové jednotky, použijte funkci DATEADD() SQL Serveru. Tato funkce funguje s datovými typy data, času nebo data a času. Vyžaduje to tři argumenty:
- Požadovaná jednotka data/času, kterou chcete přidat. V našem příkladu je to den; chceme k datu přidat dny.
- Kolik jednotek přidat. V našem příkladu je to 2; ke stávajícímu datu chceme přidat 2 dny.
- Sloupec obsahující datum/čas/datum a čas, které chceme změnit. (V našem příkladu používáme sloupec DepartureDate.) Tento argument může být také výraz, který vrací datum/čas/datum a čas.
Funkce DATEADD() vrátí nové datum. V našem příkladu je nové datum vráceno jako ChangedDepartureDate
sloupec. Pro letový kód ‚LT2030‘ je datum ‚2019-02-20‘ nyní ‚2019-02-22‘.
Funkce DATEADD() může používat jednotky data a času jako year
, quarter
, month
, dayofyear
, day
, week
, weekday
, hour
, minute
, second
, atd. Více se můžete dozvědět v dokumentaci k SQL Serveru.