Запрос По Прошлому Месяцу, Прошлой Неделе, Вчера И Так Далее


У меня есть orders таблица, которая содержит orderID & order_date.

Я пытаюсь запросить данные по прошлой неделе, в прошлом месяце или даже по вчерашнему дню, однако я не могу понять, как вычесть время из текущего времени

Мое поле order_date имеет тип TIMESTAMP, любая идея, любая помощь будут оценены

Author: kapa, 2011-05-03

3 answers

Вы можете использовать DATE_SUB:

... WHERE order_date > DATE_SUB( NOW(), INTERVAL 1 MONTH )

За взятие в прошлом месяце,

... WHERE order_date > DATE_SUB( NOW(), INTERVAL 1 WEEK )

За то, что получил на прошлой неделе,

... WHERE order_date > DATE_SUB( NOW(), INTERVAL 1 DAY )

За сегодняшний день и

... WHERE order_date BETWEEN ( DATE_SUB( NOW(), INTERVAL 2 DAY ), DATE_SUB( NOW(), INTERVAL 1 DAY ) )

За получение предыдущего дня.

Это то, о чем вы просили?

 3
Author: Tadeck, 2011-05-03 09:30:37
 3
Author: Roshan Wijesena, 2011-05-03 09:23:27

Ключ к разгадке здесь - DATEDIFF и НАЛИЧИЕ.

В течение последних 30 дней попробуйте что-то вроде этого (по памяти):

SELECT orderID, DATEDIFF(order_date, NOW()) AS days FROM table HAVING days <= 30
 1
Author: Muleskinner, 2011-05-03 09:25:49