mysql - 在mysql中解释这个查询

标签 mysql datediff

有人可以向我解释这个查询吗?

SELECT OPEN_DATETIME,
  DATEDIFF(OPEN_DATETIME, '2016-12-13 23:59:59') AS Aging
FROM batch
WHERE DATEDIFF(OPEN_DATETIME,'2016-12-14 23:59:59')>20;

输出

+------------------------+-------+
| OPEN_DATETIME          | Aging |
+------------------------+-------+
| 2017-01-26 16:28:41    |    44 |
| 2017-01-25 16:32:48    |    43 |
| 2017-01-27 02:00:00    |    45 |
+------------------------+-------+

我理解 datediff() 的意思是获取 MySQL 上两个日期之间的差异天数。但我就是不明白为什么在这个查询中需要两个 datediff()

最佳答案

我相信这应该在没有双重差异的情况下工作,只需在别名上使用 HAVING。

SELECT OPEN_DATETIME,
DATEDIFF(OPEN_DATETIME, '2016-12-13 23:59:59') AS Aging
FROM batch
HAVING Aging >20;

关于mysql - 在mysql中解释这个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41897750/

相关文章:

MySQL:移动聚合/运行总计

MySQL计算日志文件两两时间差的总和

php - 使用 date() 方法选择 DATEDIFF() AS DAYS

MySQL根据两个日期列之间的结果选择行

sql - 计算两连续行之间的时间差

php - 如何使用 PHP 从 MySQL 数据库存储和检索图像?

php - 全局创建者,任何插入查询的时间跨度

mysql - 如何用一条语句在两个表中执行一条SQL插入语句?

php - 查看数组中是否存在文本区域值

R - 为重复购买分组日期和汇总数据