V MySQL můžete použít DATE_ADD()
funkce pro přidání určitého času k datu. Můžete jej použít například k přidání 5 dnů k danému datu. Můžete určit, zda se mají přidat dny, týdny, měsíce, čtvrtletí, roky atd. Můžete také přidat časovou hodnotu, jako jsou sekundy, mikrosekundy atd.
Tento článek obsahuje příklady, které ukazují, jak DATE_ADD()
funkce funguje.
Syntaxe
Syntaxe vypadá takto:
DATE_ADD(date,INTERVAL expr unit)
Příklad 1 – Základní použití
Zde je příklad použití.
SELECT DATE_ADD('2020-10-01', INTERVAL 20 DAY) AS Result;
Výsledek:
+------------+ | Result | +------------+ | 2020-10-21 | +------------+
Tento příklad přidá 20 dní k datu poskytnutému prvním argumentem.
Příklad 2 – Jiné jednotky data
Jednotky můžete určit ve dnech, týdnech, měsících, letech atd. Zde je několik příkladů.
SELECT '2020-10-01' AS 'Start Date', DATE_ADD('2020-10-01', INTERVAL 2 WEEK) AS '+2 Weeks', DATE_ADD('2020-10-01', INTERVAL 2 MONTH) AS '+2 Months', DATE_ADD('2020-10-01', INTERVAL 2 QUARTER) AS '+2 Quarters', DATE_ADD('2020-10-01', INTERVAL 2 YEAR) AS '+2 Years';
Výsledek:
+------------+------------+------------+-------------+------------+ | Start Date | +2 Weeks | +2 Months | +2 Quarters | +2 Years | +------------+------------+------------+-------------+------------+ | 2020-10-01 | 2020-10-15 | 2020-12-01 | 2021-04-01 | 2022-10-01 | +------------+------------+------------+-------------+------------+
Příklad 3 – Časové jednotky
K hodnotě data/času můžete také přidat časové jednotky. Zde je příklad.
SELECT DATE_ADD('2020-10-01 01:00:00', INTERVAL 10 HOUR) AS Result;
Výsledek:
+---------------------+ | Result | +---------------------+ | 2020-10-01 11:00:00 | +---------------------+
A můžete zadat více jednotek současně. Můžete například zadat hodiny a minuty. Takhle.
SELECT DATE_ADD('2020-10-01 01:00:00', INTERVAL '1:30' HOUR_MINUTE) AS Result;
Výsledek:
+---------------------+ | Result | +---------------------+ | 2020-10-01 02:30:00 | +---------------------+
Očekávané hodnoty
Následující tabulka ukazuje platné hodnoty jednotek a jejich očekávaný formát.
unit Hodnota | Očekáváno expr Formát |
---|---|
MIKROSECOND | MIKROSEKUNDY |
DRUHÁ | SEKUND |
MINUTE | MINUTY |
HODINA | HODIN |
DEN | DNY |
WEEK | WEEKS |
MĚSÍC | MĚSÍCE |
ČTVRTLETÍ | ČTVRTLETÍ |
ROK | ROKY |
SECOND_MICROSECOND | „SECONDS.MICROSECONDS“ |
MINUTE_MICROSECOND | „MINUTY:SECONDS.MICROSECONDS“ |
MINUTE_SECOND | „MINUTY:SECONDS“ |
HOUR_MICROSECOND | 'HOURS:MINUTES:SECONDS.MICROSECONDS' |
HOUR_SECOND | „HOURS:MINUTES:SECONDS“ |
HOUR_MINUTE | „HOURS:MINUTES“ |
DAY_MICROSECOND | 'DAYS HOURS:MINUTES:SECONDS.MICROSECONDS' |
DAY_SECOND | „DAYS HOURS:MINUTES:SECONDS“ |
DAY_MINUTE | „DAYS HOURS:MINUTES“ |
DAY_HOUR | „DAYS HOURS“ |
YEAR_MONTH | „ROKY-MĚSÍCE“ |
Můžete také použít ADDDATE()
funkce, která dělá totéž (je to synonymum pro DATE_ADD()
funkce při použití stejné syntaxe). Navíc syntaxe ADDDATE()
má druhý tvar, což je zkrácená metoda přidání určitého počtu dní k datu. Další informace naleznete v části Příklady ADDDATE() v MySQL.