В этом учебном пособии вы узнаете, как использовать MySQL функцию DATE_SUB с синтаксисом и примерами.
Описание
MySQL функция DATE_SUB возвращает дату, после которой вычитается определенный интервал даты/времени.
Синтаксис
Синтаксис MySQL функции DATE_SUB:
DATE_SUB( date, INTERVAL value unit )
Параметры или аргументы
date - дата, на которую должен быть вычтен интервал.
value - значение интервала времени / даты, которое вы хотите вычесть. Вы можете указать положительные и отрицательные значения для этого параметра.
unit - единичный тип интервала, например DAY, MONTH, MINUTE, HOUR и т.д. Это может быть один из следующих вариантов:
unit | Версия MqSQL | Совместимость |
---|---|---|
MICROSECOND | 4.1.1 | |
SECOND | 3.2.3 | |
MINUTE | 3.2.3 | |
HOUR | 3.2.3 | |
DAY | 3.2.3 | |
WEEK | 5 | |
MONTH | 3.2.3 | |
QUARTER | 5 | |
YEAR | 3.2.3 | |
SECOND_MICROSECOND | 4.1.1 | |
MINUTE_MICROSECOND | 4.1.1 | |
MINUTE_SECOND | 4.1.1 | |
HOUR_MICROSECOND | 4.1.1 | |
HOUR_SECOND | 4.1.1 | |
HOUR_MINUTE | 3.2.3 | |
DAY_MICROSECOND | 4.1.1 | |
DAY_SECOND | 3.2.3 | |
DAY_MINUTE | 3.2.3 | |
DAY_HOUR | 3.2.3 | |
YEAR_MONTH | 3.2.3 |
Примечание
- Если в unit указать слишком короткое значение интервала, то функция DATE_SUB будет предполагать, что крайняя левая часть значения интервала не была задана.
- Использование функции DATE_SUB с отрицательным значением в качестве параметра эквивалентно использованию функции DATE_ADD.
- См. также функции ADDDATE, SUBDATE, ADDTIME и SUBTIME.
Применение
Функция DATE_SUB может использоваться в следующих версиях MySQL:
- MySQL 5.7, MySQL 5.6, MySQL 5.5, MySQL 5.1, MySQL 5.0, MySQL 4.1, MySQL 4.0, MySQL 3.23
Пример
Рассмотрим примеры MySQL функции DATE_SUB, чтобы понять, как использовать функцию DATE_SUB в MySQL.
Например:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
mysql> SELECT DATE_SUB('2014-11-02 08:44:21.000001', INTERVAL 4 MICROSECOND); #Результат: 2014-11-02 08:44:20.999997 mysql> SELECT DATE_SUB('2014-11-02 08:44:21', INTERVAL -20 SECOND); #Результат: 2014-11-02 08:44:41 mysql> SELECT DATE_SUB('2014-11-02 08:44:21', INTERVAL 25 MINUTE); #Результат: 2014-11-02 08:19:21 mysql> SELECT DATE_SUB('2014-11-02 08:44:21', INTERVAL 2 HOUR); #Результат: 2014-11-02 06:44:21 mysql> SELECT DATE_SUB('2014-11-02', INTERVAL 10 DAY); #Результат: 2014-10-23 mysql> SELECT DATE_SUB('2014-11-02', INTERVAL 12 WEEK); #Результат: 2014-08-10 mysql> SELECT DATE_SUB('2014-11-02', INTERVAL 3 MONTH); #Результат: 2014-08-02 mysql> SELECT DATE_SUB('2014-11-02', INTERVAL 3 QUARTER); #Результат: 2014-02-02 mysql> SELECT DATE_SUB('2014-11-02', INTERVAL 5 YEAR); #Результат: 2009-11-02 mysql> SELECT DATE_SUB('2014-11-02 08:44:21.000001', INTERVAL '12.000001' SECOND_MICROSECOND); #Результат: 2014-11-02 08:44:09 mysql> SELECT DATE_SUB('2014-11-02 08:44:21.000001', INTERVAL '3:12.000001' MINU #Результат: 2014-11-02 08:41:09 mysql> SELECT DATE_SUB('2014-11-02 08:44:21', INTERVAL '3:12' MINUTE_SECOND); #Результат: 2014-11-02 08:41:09 mysql> SELECT DATE_SUB('2014-11-02 08:44:21.000001', INTERVAL '1:03:12.000001' HOUR_MICROSECOND); #Результат: 2014-11-02 07:41:09 mysql> SELECT DATE_SUB('2014-11-02 08:44:21', INTERVAL '1:03:12' HOUR_SECOND); #Результат: 2014-11-02 07:41:09 mysql> SELECT DATE_SUB('2014-11-02 08:44:21', INTERVAL '1:03' HOUR_MINUTE); #Результат: 2014-11-02 07:41:21 mysql> SELECT DATE_SUB('2014-11-02 08:44:21.000001', INTERVAL '7 1:03:12.000001' DAY_MICROSECOND); #Результат: 2014-10-26 07:41:09 mysql> SELECT DATE_SUB('2014-11-02 08:44:21', INTERVAL '7 1:03:12' DAY_SECOND); #Результат: 2014-10-26 07:41:09 mysql> SELECT DATE_SUB('2014-11-02 08:44:21', INTERVAL '7 1:03' DAY_MINUTE); #Результат: 2014-10-26 07:41:21 mysql> SELECT DATE_SUB('2014-11-02 08:44:21', INTERVAL '7 1' DAY_HOUR); #Результат: 2014-10-26 07:44:21 mysql> SELECT DATE_SUB('2014-11-02', INTERVAL '5-3' YEAR_MONTH); #Результат: 2009-08-02 |