我正在尝试使用此查询获取所有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 <= ...
时,它只选择旧的并跳过新的。
我究竟做错了什么?
尝试:
$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`
NOW()
进行CURRENT_DATE只是意味着2010-08-04,不包括时间<
获取比该日期更早的条目。SELECT * FROM `table_name` WHERE CURTIME() >= (`colname` + INTERVAL 120 MINUTE)
在这里,colname
是您在创建记录时添加时间戳的列。
您也可以这样做:
$minutes = 60 * 2
SELECT COUNT(`id`) AS `TOTAL`,
`job_id`
FROM `tlb_stats`
WHERE `log_time` < NOW() - INTERVAL $minutes MINUTE
GROUP BY `job_id`