在Oracle 11g中,如何将像这样的“1234”这样的字符串转换为像这样的“12:34”这样的时间格式。将字符串转换为时间格式
我试过to_char('1234', 'HH:MI')
但我得到一个无效的数字格式模型。
在Oracle 11g中,如何将像这样的“1234”这样的字符串转换为像这样的“12:34”这样的时间格式。将字符串转换为时间格式
我试过to_char('1234', 'HH:MI')
但我得到一个无效的数字格式模型。
select to_date('1234','hh24mi') from dual;
它假定今天的日期的12时34
的时间成分,如果你想改变的字符串类型,你可以使用下面的代码日期类型:
TO_DATE('2006-06-15', 'YYYY-MM-DD')
TO_DATE('<your string>','hh24mi')
但如果要保存字符串类型并只需将字符添加到字符串中,则可以使用代码:
SUBSTR(string, start_position, [ length ])
In adv可以使用regexp_replace命令。此命令的更多详细信息在 中this link
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
感谢您的帮助。
请注意,'HH'为12小时制。 –
不要在字符串上调用'to_char' - 它已经是一个字符串了! –