繁体   English   中英

如何在MySQL中计算时差?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM