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
相关产品推荐
相关产品推荐

