Mysql
 sql >> Baza danych >  >> RDS >> Mysql

DATE_SUB() Przykłady – MySQL

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy możliwe jest zapytanie tabeli struktury drzewa w MySQL w jednym zapytaniu, na dowolną głębokość?

  2. Jak uzyskać aktualną datę i godzinę w MySQL?

  3. Jak w PHP z PDO sprawdzić końcowe, sparametryzowane zapytanie SQL?

  4. MySQL CHAR() a T-SQL CHAR():jaka jest różnica?

  5. Jak dodawać i odejmować dzień, miesiąc, rok za pomocą MySql Query