Заметки WEB-разработчика

Полезные материалы для web-разработки

Работа с датой и временем в SQL

В этом посте я приведу несколько примеров выборок по дате и времени за разные промежутки на языке SQL

--Выбрать все записи за сегодня (сутки):
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))

--Получение UNIX timestamp по DATETIME
SELECT UNIX_TIMESTAMP(my_datetime)

Комментарии

Комментарии через Вконтакте