我有一个包含timestamp
值的varchar
字段,我想要获取明天的记录。
如你所见,这是我的代码:
$tomorrow = strtotime("1+ day");
SELECT * FROM tasks WHERE task_accomplish_date > $tomorrow
但是查询是错误的
提前感谢你的帮助
发布于 2018-06-11 02:39:01
SELECT * FROM tasks WHERE task_accomplish_date > NOW() + INTERVAL 1 DAY
发布于 2018-06-11 03:30:48
您应该能够在MySQL查询中完成所有这些操作
SELECT *
FROM `tasks`
WHERE DATE(`task_accomplish_date`) = DATE(NOW() + INTERVAL 1 DAY)
这会将task_accomplish_date
转换为日期值,并查找该日期等于今天+1天(明天)的记录。这不会给你从今天或以后的两天的记录,只是明天。如果你想要明天和明天之后的所有记录,你可以使用
SELECT *
FROM `tasks`
WHERE DATE(`task_accomplish_date`) >= DATE(NOW() + INTERVAL 1 DAY)
如果您正在存储时间戳,则它们只关心时间戳的日期部分,而不关心时间戳的时间部分。如果您还关心时间部分,那么可以在WHERE
子句中从=
的两端删除DATE()
https://stackoverflow.com/questions/50786884
复制相似问题