Функция DATE_SUB (SUBDATE)
Функция DATE_SUB (она же SUBDATE)
отнимает от даты определенный промежуток
времени. Промежуток времени, который нужно
отнять, задается в том же формате, что и
для команды INTERVAL
(смотрите ее для лучшего понимания).
Синтаксис
SELECT DATE_SUB(date_field, INTERVAL value unit) FROM table_name WHERE condition
Таблицы для примеров
| id | name | date |
|---|---|---|
| 1 | user1 | 2010-03-01 12:01:02 |
| 2 | user2 | 2011-04-02 13:02:03 |
| 3 | user3 | 2012-05-03 14:03:04 |
Пример
Давайте вычтем из даты 1 день:
SELECT *, DATE_SUB(date, INTERVAL 1 DAY) AS new_date FROM employees
Результат выполнения SQL запроса:
| id | name | date | new_date |
|---|---|---|---|
| 1 | user1 | 2010-03-01 12:01:02 | 2010-02-28 12:01:02 |
| 2 | user2 | 2011-04-02 13:02:03 | 2011-04-01 13:02:03 |
| 3 | user3 | 2012-05-03 14:03:04 | 2012-05-02 14:03:04 |
Пример
Давайте вычтем из даты 3 дня,
а также 3 часа и 30 минут:
SELECT *, DATE_SUB(date, INTERVAL 3 DAY + INTERVAL 3 HOUR + INTERVAL 30 MINUTE)
AS new_date FROM employees
Результат выполнения SQL запроса:
| id | name | date | new_date |
|---|---|---|---|
| 1 | user1 | 2010-03-01 12:01:02 | 2010-02-26 08:31:02 |
| 2 | user2 | 2011-04-02 13:02:03 | 2011-03-30 09:32:03 |
| 3 | user3 | 2012-05-03 14:03:04 | 2012-04-30 10:33:04 |
Смотрите также
-
функцию
DATE_ADD,
с помощью которой можно прибавлять даты