В этом учебном пособии вы узнаете, как использовать MySQL функцию SUBDATE с синтаксисом и примерами.
Описание
MySQL функция SUBDATE возвращает дату, после которой вычитается определенный интервал.
Синтаксис
Синтаксис MySQL функции SUBDATE:
ИЛИ
Параметры или аргументы
date - дата, на которую должен быть вычтен интервал.
days - количество дней для вычитания из даты (второй синтаксис).
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, функция SUBDATE будет считать, что крайняя левая часть значения интервала не была предоставлена.
- Функция SUBDATE (только первый синтаксис) является синонимом функции DATE_SUB.
- Использование функции SUBDATE с отрицательным значением в качестве параметра эквивалентно использованию функции ADDDATE.
- См. также функции DATE_ADD, DATE_SUB, ADDDATE, ADDTIME и SUBTIME.
Применение
Функция SUBDATE может использоваться в следующих версиях 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 функции SUBDATE, чтобы понять, как использовать функцию SUBDATE в 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 80 81 82 83 |
mysql> SELECT SUBDATE('2014-11-02 08:44:21.000001', INTERVAL 4 MICROSECOND); #Результат: 2014-11-02 08:44:20.999997 mysql> SELECT SUBDATE('2014-11-02 08:44:21', INTERVAL -20 SECOND); #Результат: 2014-11-02 08:44:41 mysql> SELECT SUBDATE('2014-11-02 08:44:21', INTERVAL 25 MINUTE); #Результат: 2014-11-02 08:19:21 mysql> SELECT SUBDATE('2014-11-02 08:44:21', INTERVAL -2 HOUR); #Результат: 2014-11-02 10:44:21 mysql> SELECT SUBDATE('2014-11-02', INTERVAL 10 DAY); #Результат: 2014-10-23 mysql> SELECT SUBDATE('2014-11-02', 10); #Результат: 2014-10-23 mysql> SELECT SUBDATE('2014-11-02', INTERVAL 12 WEEK); #Результат: 2014-08-10 mysql> SELECT SUBDATE('2014-11-02', INTERVAL -3 MONTH); #Результат: 2015-02-02 mysql> SELECT SUBDATE('2014-11-02', INTERVAL 3 QUARTER); #Результат: 2014-02-02 mysql> SELECT SUBDATE('2014-11-02', INTERVAL 5 YEAR); #Результат: 2009-11-02 mysql> SELECT SUBDATE('2014-11-02 08:44:21.000001', INTERVAL '12.000001' SECOND_MICROSECOND); #Результат: 2014-11-02 08:44:09 mysql> SELECT SUBDATE('2014-11-02 08:44:21.000001', INTERVAL '3:12.000001' MINUTE_MICROSECOND); #Результат: 2014-11-02 08:41:09 mysql> SELECT SUBDATE('2014-11-02 08:44:21', INTERVAL '3:12' MINUTE_SECOND); #Результат: 2014-11-02 08:41:09 mysql> SELECT SUBDATE('2014-11-02 08:44:21.000001', INTERVAL '1:03:12.000001' HOUR_MICROSECOND); #Результат: 2014-11-02 07:41:09 mysql> SELECT SUBDATE('2014-11-02 08:44:21', INTERVAL '1:03:12' HOUR_SECOND); #Результат: 2014-11-02 07:41:09 mysql> SELECT SUBDATE('2014-11-02 08:44:21', INTERVAL '1:03' HOUR_MINUTE); #Результат: 2014-11-02 07:41:21 mysql> SELECT SUBDATE('2014-11-02 08:44:21.000001', INTERVAL '7 1:03:12.000001'DAY_MICROSECOND); #Результат: 2014-10-26 07:41:09 mysql> SELECT SUBDATE('2014-11-02 08:44:21', INTERVAL '7 1:03:12' DAY_SECOND); #Результат: 2014-10-26 07:41:09 mysql> SELECT SUBDATE('2014-11-02 08:44:21', INTERVAL '7 1:03' DAY_MINUTE); #Результат: 2014-10-26 07:41:21 mysql> SELECT SUBDATE('2014-11-02 08:44:21', INTERVAL '7 1' DAY_HOUR); #Результат: 2014-10-26 07:44:21 mysql> SELECT SUBDATE('2014-11-02', INTERVAL '5-3' YEAR_MONTH); #Результат: 2009-08-02 |