我正在尝试运行一个查询,显示一个列日期/时间与另一个列之间的延迟。理想情况下,我希望能够指定大于5小时的任何东西。
我希望能够显示结果,例如:
Select * from table
where column A is greater than column B
或者理想的where column A is greater than column B by 5 hours
使用TIMESTAMPDIFF
Select * from table
where TIMESTAMPDIFF(HOUR, start_time, end_time)>=5
在MySQL中,你会这样做:
where A > B
接着:
where A > B + interval 5 hour
我建议习惯这种形式的比较,而不是考虑差异。虽然在这种情况下可能没什么区别,但如果B
是一个常数,那么这可以利用A
上的索引。
Select * from table
where (column A - column B) > 5/24
日期算术以毫秒为单位工作。
select * from table where (columnA - columnB)/(1000*60*60) >= 5
减去日期字段将产生毫秒。因此,将毫秒乘以1000 * 60 * 60将产生经过的小时数。