php - MySQL中如何计算时间差?

标签 php 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)

关于php - MySQL中如何计算时间差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27369856/

相关文章:

java - c3p0-0.9.5.2 语句展开导致抽象方法错误

mysql - 如何获取 mysql 表中可用的日期

mysql - 使用 mysql 查询搜索包含一些字母的字符串时出现问题

php - 无法在 phpMyAdmin 中查看数据库表

PHP - 在函数范围内引用时的封装

php - 加入 4 个表并检索数据

php - JSON 下拉列表未正确填充

php - Xdebug 段错误

javascript - 如何将 php 数据设置为 javascript 日期并更改输入文本的颜色

mysql - 如何在没有临时表的情况下对子查询的结果进行 UNION?