【发布时间】:2016-09-06 08:29:46
【问题描述】:
在 Oracle 11g 中,如何将“1234”这样的字符串转换为“12:34”这样的时间格式。
我尝试了to_char('1234', 'HH:MI'),但我得到了一个无效的数字格式模型。
【问题讨论】:
-
不要在字符串上调用
to_char- 它已经是字符串了!
在 Oracle 11g 中,如何将“1234”这样的字符串转换为“12:34”这样的时间格式。
我尝试了to_char('1234', 'HH:MI'),但我得到了一个无效的数字格式模型。
【问题讨论】:
to_char - 它已经是字符串了!
Oracle 没有时间数据类型。
它有 DATE 和 TIMESTAMP 数据类型(两者都有时间成分,但它们也有年、月和日),它有 INTERVAL DAY TO SECOND 数据类型(即两个 TIMESTAMP 之间的差异s)。
如果你想要今天日期的时间:
TO_DATE( '1234', 'HH24MI' )
将输出包含组件的日期:
2016-09-06 12:34:00
如果你想要一个间隔,那么:
NUMTODSINTERVAL( SUBSTR( '1234', 1, 2 ), 'HOUR' )
+ NUMTODSINTERVAL( SUBSTR( '1234', 3, 2 ), 'MINUTE' )
将输出带分量的区间:
+00 12:34:00.000000
【讨论】:
我找到了:
SELECT TO_CHAR (TO_DATE ('1234', 'HHMi'), 'HH:Mi') FROM DUAL;
12:34
感谢您的所有帮助。
【讨论】:
select to_date('1234','hh24mi') from dual;
假设今天的日期,时间部分为 12:34
【讨论】: