MySQL INTERVAL Mins

Я пытаюсь получить все записи, которые составляют 2 часа или более старое использование этого запроса:

$minutes = 60 * 2

SELECT COUNT(id) AS TOTAL, job_id 
  from tlb_stats 
 WHERE log_time >= DATE_SUB(CURRENT_DATE, INTERVAL $minutes MINUTE) 
GROUP BY job_id

Это только выбирает недавние записи и пропускает старое. Когда я изменяюсь log_time <= ... это только выбирает старый и пропуски, которые являются новым.

Что я делаю неправильно?

8
задан simhumileco 24 April 2019 в 22:06
поделиться

1 ответ

Попробуйте:

$minutes = 60 * 2

SELECT COUNT(`id`) AS `TOTAL`, `job_id` 
  FROM `tlb_stats` 
  WHERE `log_time` < DATE_SUB(NOW(), INTERVAL $minutes MINUTE) 
  GROUP BY `job_id`
  • использовать обратные знаки для цитирования полей (такие слова как "total" и "id" могут когда-нибудь означать что-то в MySQL)
  • использовать NOW() для CURRENT_DATE означает только 2010-08-04, не включая время
  • использовать < для получения записей старше этой даты.
19
ответ дан 5 December 2019 в 08:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: