oracle - 小时和分钟的时差
问题描述
我试图找出小时和分钟的时差,但出现错误,请帮助找出查询,例如我需要在 oracle 16:55- 14:00 = 2:55 中的以下答案
解决方案
将时间转换为DATE
或TIMESTAMP
然后从另一个中减去一个以获得INTERVAL DAY TO SECOND
数据类型;然后用于EXTRACT
获取小时和分钟组件并对其进行格式化:
SELECT start_time,
end_time,
TO_CHAR( EXTRACT( HOUR FROM difference ), 'FM00' )
|| ':'
|| TO_CHAR( ABS( EXTRACT( MINUTE FROM DIFFERENCE ) ), 'FM00' )
AS difference
FROM (
SELECT start_time,
end_time,
( TO_DATE( end_time, 'HH24:MI' ) - TO_DATE( start_time, 'HH24:MI' ) ) DAY TO SECOND
AS difference
FROM test_data
)
其中,对于测试数据:
CREATE TABLE test_data ( start_time, end_time ) AS
SELECT '14:00', '16:55' FROM DUAL UNION ALL
SELECT '14:50', '15:23' FROM DUAL UNION ALL
SELECT '16:00', '14:00' FROM DUAL UNION ALL
SELECT '16:00', '14:20' FROM DUAL UNION ALL
SELECT '00:00', '23:59' FROM DUAL;
输出:
START_TIME | END_TIME | 区别 :--------- | :------- | :--------- 14:00 | 16:55 | 02:55 14:50 | 15:23 | 00:33 16:00 | 14:00 | -02:00 16:00 | 14:20 | -01:40 00:00 | 23:59 | 23:59
db<>在这里摆弄
推荐阅读
- node.js - 如何在您的条带 webhook 标头中获取条带签名
- python - Python 事件循环
- hybris - 如何从购物车中删除基于规则的促销活动?
- iteration - 如何迭代字符串的一部分?
- javascript - 从 HTML 运行时导入 OpenLayers 模块时出错
- flutter - 将元素添加到动画列表时如何停止最后一个元素跳转
- pvs-studio - PVS-Studio:未找到编译单元
- vue.js - 如何从模块 vuex 访问 getter
- python - Python 3.9.1 的表包?
- android - 是否可以使用导航组件将数据从片段传递到活动?如果是,请告诉我如何