我有varchar
字段包含timestamp
值,我想获得明天的记录。
这是我的代码,你可以看到:
$tomorrow = strtotime("1+ day");
SELECT * FROM tasks WHERE task_accomplish_date > $tomorrow
但查询不正确
感谢您的帮助
答案 0 :(得分:1)
应该是这样的:
$tomorrow = strtotime("+1 day");
/* this will select all record before tomorrow*/
SELECT * FROM tasks WHERE task_accomplish_date < $tomorrow;
/* this will select all record after tomorrow*/
SELECT * FROM tasks WHERE task_accomplish_date > $tomorrow;
答案 1 :(得分:0)
SELECT * FROM tasks WHERE task_accomplish_date > NOW() + INTERVAL 1 DAY
答案 2 :(得分:0)
您应该能够在MySQL查询中完成所有这些操作
SELECT *
FROM `tasks`
WHERE DATE(`task_accomplish_date`) = DATE(NOW() + INTERVAL 1 DAY)
将您的task_accomplish_date
转换为日期值,并查找该日期等于今天+ 1天(明天)的记录。这不会给你从今天或之后的2天,就在明天。如果你想明天和明天以后的所有记录你都会使用
SELECT *
FROM `tasks`
WHERE DATE(`task_accomplish_date`) >= DATE(NOW() + INTERVAL 1 DAY)
如果要存储时间戳,则这些只关心时间戳的日期部分,而不是时间戳的时间部分。如果您还关心时间部分,则可以从DATE()
子句中=
的两边删除WHERE