Adatbázis.útmutató

A MySQL-ben a DATE_SUB() függvénnyel kivonhat egy megadott időtartamot egy dátumból. Például használhatja arra, hogy egy adott dátumból kivonjon 7 napot. Megadhatja, hogy napokat, heteket, hónapokat, negyedéveket, éveket stb. vonjon le. Kivonhat egy időértéket is, például másodperceket, mikroszekundumokat stb.

Ez a függvény hasonló a DATE_ADD()-hez, azzal a különbséggel, hogy a dátumból kivon, nem pedig hozzáad.

Szintaktika

A szintaxis így néz ki:

DATE_SUB(date,INTERVAL expr unit)

Példa 1 – Alapvető használat

Íme egy használati példa.

SELECT DATE_SUB('2021-05-07', INTERVAL 5 DAY) AS Result;

Eredmény:

+------------+| Result |+------------+| 2021-05-02 |+------------+

Ez a példa 5 napot von le az első argumentummal megadott dátumból.

Példa 2 – Más dátumegységek

A mértékegységeket napokban, hetekben, hónapokban, években stb. adhatja meg. Íme néhány példa.

SELECT '2021-05-07' AS 'Start Date', DATE_SUB('2021-05-07', INTERVAL 2 WEEK) AS '-2 Weeks', DATE_SUB('2021-05-07', INTERVAL 2 MONTH) AS '-2 Months', DATE_SUB('2021-05-07', INTERVAL 2 QUARTER) AS '-2 Quarters', DATE_SUB('2021-05-07', INTERVAL 2 YEAR) AS '-2 Years';

Eredmény:

+------------+------------+------------+-------------+------------+| Start Date | -2 Weeks | -2 Months | -2 Quarters | -2 Years |+------------+------------+------------+-------------+------------+| 2021-05-07 | 2021-04-23 | 2021-03-07 | 2020-11-07 | 2019-05-07 |+------------+------------+------------+-------------+------------+

Példa 3 – Időegységek

A dátum/idő értékéből időegységeket is kivonhat. Íme egy példa.

SELECT DATE_SUB('2021-05-07 10:00:00', INTERVAL 5 HOUR) AS Result;

Eredmény:

+---------------------+| Result |+---------------------+| 2021-05-07 05:00:00 |+---------------------+

És egyszerre több egységet is megadhat. Például órákat és perceket is megadhat. Például így:

SELECT DATE_SUB('2021-05-07 10:00:00', INTERVAL '1:30' HOUR_MINUTE) AS Result;

Eredmény:

+---------------------+| Result |+---------------------+| 2021-05-07 08:30:00 |+---------------------+

Várt értékek

A következő táblázat az érvényes egységértékeket és azok várható formátumát mutatja.

unit Érték Várható expr Formátum
MIKROSZEKUND MIKROSZEKUND
MÁSODPERC MÁSODPERC
PERC PERC
ÓRA ÓRÁS ÓRA
NAP NAPOK
HÉT HETEK
HÓNAP HÓNAPOK
NEGYEDÉV NEGYEDÉV
ÉV ÉV
MÁSODPERC_MIKROMÁSODPERC ‘MÁSODPERC.MICROSECONDS’
MINUTE_MICROSECOND ‘MINUTES:SECONDS.MICROSECONDS’
MINUTE_SECOND ‘MINUTES:SECONDS’
HOUR_MICROSECOND ‘HOURS:MINUTES:SECONDS.MIKROMÁSODPERC’
ÓRA_MÁSODPERC ‘ÓRA:PERC:MÁSODPERC’
ÓRA_PERC ‘ÓRA:PERC’
NAP_MIKROMÁSODPERC ‘NAP ÓRA:PERC:MÁSODPERC.MIKROMÁSODPERC’
NAP_MIKROSZEKUNDUM ‘NAP ÓRÁK:PERCEK:MÁSODPERCEK’
NAP_PERC ‘NAP ÓRÁK:PERC’
NAP_ÓRA ‘NAPOK ÓRÁK’
ÉV_HÓNAP ‘ÉVEK-MONTHS’

Az SUBDATE() függvényt is használhatod ugyanerre a célra (ez a DATE_SUB() függvény szinonimája, ha ugyanazt a szintaxist használod).

Az SUBDATE() szintaxisnak van egy második formája is, amely egy rövidített módszer egy bizonyos számú nap kivonására egy dátumból. További információért lásd: SUBDATE() példák a MySQL-ben.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.