You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle中如何将日期中的小时和分钟提取为数字?

解决Oracle时间格式从HH24:MI转为HH24.MI的问题

嘿,我来帮你搞定这个时间格式转换的需求!你想要把SYSDATE按HH24:MI的形式输出,但把冒号换成点号得到13.50这样的结果,其实有两种简单的方法可以实现:

方法1:直接修改TO_CHAR的格式字符串

Oracle的TO_CHAR函数允许你用双引号包裹固定字符,所以你可以直接把格式里的冒号换成带双引号的点号,这样就能直接输出你想要的格式:

SELECT TO_CHAR(SYSDATE, 'HH24"."MI') FROM dual;

这个语句会直接返回13.50,完全符合你的期望结果,是最直接的解决方案。

方法2:处理EXTRACT得到的数值(针对你尝试过的方法)

你之前尝试用EXTRACT提取小时和分钟后求和没成功,应该是没对结果做格式化。如果想用这种方式,你需要先计算出小时加分钟的小数形式,再用TO_CHAR把它格式化为带两位小数的字符串:

SELECT TO_CHAR(
    EXTRACT(HOUR FROM SYSDATE) + EXTRACT(MINUTE FROM SYSDATE)/60,
    'FM99.00'
) FROM dual;

这里的FM99.00格式会确保输出两位小数(比如分钟是30的话就显示.50而不是.5),FM用来去掉不必要的前导空格。

这两种方法都能完美得到你想要的13.50结果,选哪种都可以,第一种更简洁直接哦!

内容的提问来源于stack exchange,提问作者dwalker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:24:02