我有一个包含“开始”列的表格,其中包含某些任务的开始日期
+----------+---------------------+------------+
| name | start | end |
+----------+---------------------+------------+
| p1 | 2014-12-08 15:56:03 | |
| p2 | 2014-12-08 15:56:03 | |
| p3 | 2014-12-08 15:56:03 | |
| ... | ... | ... |
+----------+---------------------+------------+
我需要从该表中选择所有启动时间超过 48 小时的任务 我试过了
start between DATE_SUB(NOW(),INTERVAL 2 DAY) and NOW()
我用谷歌搜索并尝试了多种方法来比较日期,但不幸的是没有得到预期的结果。
最佳答案
对于您想要实现的结果,这是正确的 MySQL 语句。只需将 table
替换为您的 MySQL 表名称即可。
SELECT *
FROM table
WHERE start BETWEEN DATE_SUB(NOW(), INTERVAL 2 DAY) AND NOW()
编辑:我刚刚注意到,您实际上正在寻找超过 2 天的每个日期,而不是“2 天内”。所以 MySQL 的声明是:
SELECT *
FROM table
WHERE start < DATE_SUB(NOW(), INTERVAL 2 DAY)
关于php - MySQL中如何计算时间差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27369856/