mysql - Mysql 时差不起作用 MySQL 客户端版本:3.23.49
问题描述
TIMEDIFF 函数不起作用我想获取列类型 = 1 到列类型 = 1 和 old_value = 10 我的 2 个查询的时间差,如下所示。
SELECT date_modified
FROM mantis_bug_history_table
WHERE bug_id =75616
AND TYPE =0
AND old_value =10
ORDER BY date_modified DESC
output
------
2019-10-28 10:26:57
SELECT date_modified
FROM mantis_bug_history_table
WHERE bug_id =75616
AND TYPE =1
ORDER BY date_modified DESC
output
------
2019-10-28 10:15:04
[在此处输入图像描述][1] 错误 SQL 查询:文档
SELECT TIMEDIFF(
SELECT date_modified
FROM mantis_bug_history_table
WHERE bug_id =75616
AND TYPE =1
ORDER BY date_modified DESC ,
SELECT date_modified
FROM mantis_bug_history_table
WHERE bug_id =75616
AND TYPE =0
AND old_value =10
ORDER BY date_modified DESC )
MySQL said: Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(SELECT date_modified
FROM mantis_bug_history_table
WHERE bu
上面的查询试图获取时间差异
解决方案
(...subquery)
在作为参数传递给之前在子查询周围添加括号TIMEDIFF
:
(SELECT date_modified FROM mantis_bug_history_table WHERE bug_id =75616 AND TYPE =0 AND old_value =10 ORDER BY date_modified DESC )
(SELECT date_modified FROM mantis_bug_history_table WHERE bug_id =75616 AND TYPE =1 ORDER BY date_modified DESC)
最终查询:
SELECT TIMEDIFF((SELECT date_modified FROM mantis_bug_history_table WHERE bug_id =75616 AND TYPE =0 AND old_value =10 ORDER BY date_modified DESC ),
(SELECT date_modified FROM mantis_bug_history_table WHERE bug_id =75616 AND TYPE =1 ORDER BY date_modified DESC));
请注意: TIMEDIFF 函数期望每个子查询只返回一个 row+col,如果将来可能有多个,请考虑将LIMIT 1与它们都添加。
推荐阅读
- yii2 - 如何在 yii2 gii 生成的 crud 中添加自定义新字段
- python - 具有柱式变压器和管道的 ML 模型的参数调整
- html - 制作按钮使用动画来取消悬停鼠标
- php - PHP session_start() 和 session_abort() 的行为看起来有些出乎意料
- html - 为什么包裹在锚标签中时图像尺寸会缩小?
- javascript - 从 javascript 录制和上传音频
- flutter - 如何在颤动中用平移、倾斜和缩放值填充 Matrix4?
- javascript - 搜索嵌套的对象数组并返回所有匹配项的完整路径
- xcode - 项目构建成功但预览时出现很多错误
- c# - 当前上下文中不存在名称“修复”