时间查询 - 查询一列大于另一列

问题描述 投票:1回答:4

我正在尝试运行一个查询,显示一个列日期/时间与另一个列之间的延迟。理想情况下,我希望能够指定大于5小时的任何东西。

我希望能够显示结果,例如:

Select * from table
where column A is greater than column B

或者理想的where column A is greater than column B by 5 hours

mysql sql datetime
4个回答
5
投票

使用TIMESTAMPDIFF

  Select * from table
    where TIMESTAMPDIFF(HOUR, start_time, end_time)>=5

3
投票

在MySQL中,你会这样做:

where A > B

接着:

where A > B + interval 5 hour

我建议习惯这种形式的比较,而不是考虑差异。虽然在这种情况下可能没什么区别,但如果B是一个常数,那么这可以利用A上的索引。


0
投票
Select * from table
where (column A - column B) > 5/24

0
投票

日期算术以毫秒为单位工作。

select * from table where (columnA - columnB)/(1000*60*60) >= 5

减去日期字段将产生毫秒。因此,将毫秒乘以1000 * 60 * 60将产生经过的小时数。

© www.soinside.com 2019 - 2024. All rights reserved.