[英]How to calculate time difference in MySQL?
我有一个带有“开始”列的表,其中包含一些任务的开始日期
+----------+---------------------+------------+
| 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)
我不太会纯粹使用mysql来做到这一点,但是您可以使用PHP来完成日期(因为您也将其标记为使用PHP):
$startDate = date("Y-m-d H:i:s",strtotime("-48 hours"));
$nowDate = date("Y-m-d H:i:s");
$sql = "select * from table where start >= '".$startDate."' AND start <= '".$nowDate."'";
// execute your sql statement here and fetch results
这似乎与您尝试执行的操作最接近。
SELECT *
FROM table
WHERE start BETWEEN (CURRENT_DATE() - INTERVAL 2 DAY) AND CURRENT_DATE();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.