MySQL: выборка с использованием дат
2016-05-22
Несколько готовых решений по выборкам из базы на основе дат.

Выборка интервала между текущей датой и какой-то датой в будущем, например за следующую неделю:
SELECT * FROM `items` WHERE publicated_to BETWEEN current_date AND current_date + interval 7 day LIMIT 0, 100
Выбрать все записи за сегодня (сутки):
SELECT * FROM TABLE WHERE date >= CURDATE()
За вчерашний день:
SELECT * FROM TABLE WHERE date >= (CURDATE()-1) AND date < CURDATE()
За неделю:
SELECT * FROM TABLE WHERE date >= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY)
За месяц:
SELECT * FROM TABLE WHERE date >= DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH)
Если метка времени time хранится в UNIXTIME, выбрать можно так:
За сутки:
SELECT COUNT(*) FROM `table` WHERE `time`>NOW()-INTERVAL 24 HOUR
За двое суток:
SELECT COUNT(*) FROM `table` WHERE `time`>NOW()-INTERVAL 48 HOUR
За прошлые сутки:
SELECT COUNT(*) FROM `table` WHERE `time` BETWEEN (NOW()-INTERVAL 48 HOUR) AND (NOW() - INTERVAL 24 HOUR)
либо можно "обернуть" в UNIX_TIMESTAMP
UNIX_TIMESTAMP(DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY))