【发布时间】:2019-02-20 20:07:43
【问题描述】:
如何以 'hh24:mi' 格式显示 2 个时间戳之间的间隔?
我有一个带有两个日期戳 StartTime 和 EndTime 的表格,我希望看到 HH24:mi 之间的小时和分钟差异
差异永远不会超过 24 小时,但 StartTime 可以在第 1 天,EndTime 可以在第 1 天。
例子:
StartTime = 19/02/2019 22:52:42
EndTime = 20/02/2019 02:56:42
Result wanted = 04:04
到目前为止,我取得的最好成绩是:
4,8 : ROUND ((EndTime - StartTime) * 24,2) INTERVAL
4:4 : EXTRACT (hour from numtodsinterval (EndTime - add_months (StartTime, floor (months_between (EndTime,StartTime))), 'day')) || ':'
|| EXTRACT (minute from numtodsinterval (EndTime - add_months (StartTime, floor (months_between (EndTime, StartTime))), 'day'))
单独字段中的小时和分钟:小时:4 |最小:4
trunc(((86400*(EndTime-StartTime))/60)/60)-24*(trunc((((86400*(EndTime-StartTime))/60)/60)/24)) "Hrs"
trunc((86400*(EndTime-StartTime))/60)-60*(trunc(((86400*(EndTime-StartTime))/60)/60)) "Min"
【问题讨论】:
-
什么是实际的列数据类型 - 您提到了时间戳,还提到了“日期时间戳”,并且您没有显示任何小数秒或时区,所以它们可能只是日期?你的尝试也不是很清楚,你能展示一下你从每一个中得到的结果吗?如果它们完全起作用,我认为它们实际上必须是日期而不是时间戳......
-
Possible duplicate 如果它们是时间戳列。 Possible duplicate 如果它们是日期列。
-
如果相差超过一天,你想要什么输出?
-
@HijeshVl - “差异永远不会超过 24 小时”(这是否真的总是真的是另一回事,当然 *8-)
-
@Alex Poole : StartTime 和 EndTime 都是 = DATE 字段,所以这种格式:20/02/2019 5:38:01