如何减去两个 sql 时间戳字段,然后以小时为单位返回时差
Posted
技术标签:
【中文标题】如何减去两个 sql 时间戳字段,然后以小时为单位返回时差【英文标题】:How to subtract two sql timestamp fields then return time difference in hours 【发布时间】:2020-02-04 07:56:30 【问题描述】:我正在使用开源数据库、元数据库,我尝试了datediff()
函数,它在当天返回 (datediff(d1,d2)
),
但我希望它在几个小时内返回:
select d1,d2,d1-d2
然后它返回
'2020/01/30 T00:00:00.000Z' '2020/01/28 T19:17:39.000Z' 25,158,264
我怎么能在几个小时内改变它?提前致谢。
btw timestampdiff 在我的数据库版本中不起作用,所以我可能需要另一个解决方案
【问题讨论】:
1) 您可以使用 TIMEDIFF() 并获取 TIME 数据类型的差异。差额不得超过 1 个月。 2)您可以将操作数转换为TIMESTAMP,减去(获得以秒为单位的差异)并转换为小时。 【参考方案1】:根据TIMESTAMPDIFF的手册
从表中选择 d1,d2,TIMESTAMPDIFF(HOUR, d1, d2)
【讨论】:
嗨@stacker,timestampdiff 在我的数据库版本中不起作用,那么还有其他方法吗?谢谢 @JamieKuo 你用的是哪个版本的? 嗨@stacker,我与管理员核实,他们说有一些参数错误,并且在他们刷新环境后它现在可以工作了。无论如何,谢谢你的回答。【参考方案2】:选择 TIMESTAMPDIFF(HOUR,d1,d2) 作为“小时差”;
【讨论】:
【参考方案3】:我认为您使用的是 mysql。
这是语法:
select TIMEDIFF('2020/01/30 T00:00:00.000Z','2020/01/28 T19:17:39.000Z')
【讨论】:
以上是关于如何减去两个 sql 时间戳字段,然后以小时为单位返回时差的主要内容,如果未能解决你的问题,请参考以下文章