Как получить результаты, превышающие вчерашние

#mysql

#mysql

Вопрос:

У меня есть база данных, которая хранит дату для каждой записи в формате DATETIME. Мне нужно извлекать только те результаты, которые больше, чем вчера. Я говорю вчера, потому что мне нужны результаты за текущий день и вперед.

В настоящее время у меня есть следующее.

$yest = mktime(0, 0, 0, date("m"), date("d")-1, date("Y"));
$yest_date = date('n-j-o', $yest);

SELECT * FROM TBL_NAME WHERE DATE_FORMAT(event_date, "%c-%d-%Y") > '".$yest_date."'

Это не дает никаких результатов, хотя я знаю, что есть события. Мы были бы очень признательны за любую помощь.

Ответ №1:

SELECT * FROM tbl_name WHERE event_date > DATE_SUB(NOW(), INTERVAL 1 DAY)

Комментарии:

1. Это не сработает, поскольку не удаляет временную часть. Вчерашний день с большой вероятностью начинается с 00:00:00 , а не с NOW() - 1

Ответ №2:

 WHERE event_date > date(now()) - 1
  

Ответ №3:

 Select * from tbl_name WHERE event_date > DATE_SUB(curdate(), INTERVAL 1 DAY)
  

Это должно начинаться со вчерашнего дня, а не через 24 часа после запуска запроса.

Если вы запускаете это в cron, вам, вероятно, следует сверить часовой пояс базы данных с сервером, чтобы вы не запускали его два дня назад, намереваясь запустить в 12: 01, но фактически запустив в 11: 01 из-за различий.

Ответ №4:

 SELECT * FROM TBL_NAME WHERE event_date >= CURDATE()
  

Ответ №5:

 SELECT * FROM tbl_name WHERE field_date > now()- interval 1 day;
  

Ответ №6:

что этот делает, так это выбирает значения с первой минуты сегодня до последней минуты сегодня.

 WHERE scheduled_start_timestamp >= date() AND scheduled_start_timestamp <= date()   1