W MySQL możesz użyć DATE_SUB()
funkcja odejmowania określonej ilości czasu od daty. Na przykład możesz go użyć, aby odjąć 7 dni od podanej daty. Możesz określić, czy odejmować dni, tygodnie, miesiące, kwartały, lata itp. Możesz także odjąć wartość czasu, taką jak sekundy, mikrosekundy itp.
Ta funkcja jest podobna do funkcji DATE_ADD()
, z wyjątkiem tego, że odejmuje od daty zamiast do niej dodawać.
Składnia
Składnia wygląda tak:
DATE_SUB(date,INTERVAL expr unit)
Przykład 1 – Podstawowe użycie
Oto przykład użycia.
SELECT DATE_SUB('2021-05-07', INTERVAL 5 DAY) AS Result;
Wynik:
+------------+ | Result | +------------+ | 2021-05-02 | +------------+
W tym przykładzie odejmuje się 5 dni od daty podanej w pierwszym argumencie.
Przykład 2 – Inne jednostki daty
Możesz określić jednostki w dniach, tygodniach, miesiącach, latach itp. Oto kilka przykładów.
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';
Wynik:
+------------+------------+------------+-------------+------------+ | 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 | +------------+------------+------------+-------------+------------+
Przykład 3 – Jednostki czasu
Możesz także odjąć jednostki czasu od wartości daty/godziny. Oto przykład.
SELECT DATE_SUB('2021-05-07 10:00:00', INTERVAL 5 HOUR) AS Result;
Wynik:
+---------------------+ | Result | +---------------------+ | 2021-05-07 05:00:00 | +---------------------+
Możesz określić wiele jednostek jednocześnie. Na przykład możesz określić godziny i minuty. W ten sposób.
SELECT DATE_SUB('2021-05-07 10:00:00', INTERVAL '1:30' HOUR_MINUTE) AS Result;
Wynik:
+---------------------+ | Result | +---------------------+ | 2021-05-07 08:30:00 | +---------------------+
Oczekiwane wartości
Poniższa tabela przedstawia prawidłowe wartości jednostek i ich oczekiwany format.
unit Wartość | Oczekiwano expr Format |
---|---|
MIKROSEKUNDA | MIKROSEKUNDY |
DRUGA | SEKUND |
MINUTA | MINUT |
GODZINA | GODZINY |
DZIEŃ | DNI |
TYDZIEŃ | TYGODNIE |
MIESIĄC | MIESIĄCE |
KWARTAŁ | KWARTAŁ |
ROK | LAT |
SECOND_MICROSECOND | „SEKUND.MIKROSEKUNDY” |
MINUTE_MICROSECOND | „MINUTY:SEKUND.MIKROSEKUNDY” |
MINUTE_SECOND | „MINUTY:SEKUNDY” |
HOUR_MICROSECOND | „GODZINY:MINUTY:SEKUND.MIKROSEKUNDY” |
HOUR_SECOND | „GODZINY:MINUTY:SEKUNDY” |
GODZINA_MINUTA | „GODZINY:MINUTY” |
DAY_MICROSECOND | „DNI GODZINY:MINUTY:SEKUND.MIKROSEKUNDY” |
DAY_SECOND | „DNI GODZINY:MINUTY:SEKUNDY” |
DAY_MINUTE | „DNI GODZINY:MINUTY” |
DAY_HOUR | „DNI GODZINY” |
ROK_MIESIĄC | „LATA-MIESIĄCE” |
Możesz też użyć funkcji SUBDATE()
funkcja do zrobienia tego samego (jest synonimem DATE_SUB()
funkcji przy użyciu tej samej składni).
Ponadto składnia SUBDATE()
ma drugą formę, która jest skróconą metodą odejmowania określonej liczby dni od daty. Aby uzyskać więcej informacji, zobacz SUBDATE() Przykłady w MySQL.