SELECT *
FROM `summary`
WHERE submit_date = curdate()
AND submit_date > '06:00'
AND submit_date < '21:00'
LIMIT 0 , 30
这会提取包括今天在内的所有日期吗? submit_date 是一个显示有 DATETIME 的列,它没有像应该的那样过滤掉它们。我错过了什么?谢谢!
最佳答案
如果它是 DATETIME
列,您的 2 个限制条件应该与 TIME()
返回的值进行比较,并且第一个条件应该限制为 DATE()
部分。
SELECT *
FROM `summary`
WHERE
/* Truncate to the date only to compare against CURDATE() */
DATE(submit_date) = curdate()
/* And truncate to the TIME() to compare against these time literals. */
/* note also that the time literals may need seconds as well */
AND TIME(submit_date) > '06:00:00'
AND TIME(submit_date) < '21:00:00'
LIMIT 0 , 30
关于php - 按 CURDATE() 过滤查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13004421/