将字符串转换为时间格式

时间:2016-09-06 08:29:47

标签: oracle date format

在Oracle 11g中,如何转换像这样的字符串" 1234"进入像这样的时间格式" 12:34"。

我已经尝试了to_char('1234', 'HH:MI'),但我得到了一个无效的数字格式模型。

3 个答案:

答案 0 :(得分:3)

Oracle没有时间数据类型。

它有DATETIMESTAMP数据类型(两者都有时间组件但它们也有年,月和日)并且它具有INTERVAL DAY TO SECOND数据类型(即两个TIMESTAMP之间的差异。

如果你想要今天的约会时间:

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

答案 1 :(得分:1)

我找到了它:

SELECT TO_CHAR (TO_DATE ('1234', 'HHMi'), 'HH:Mi') FROM DUAL;
12:34

感谢您的帮助。

答案 2 :(得分:0)

select to_date('1234','hh24mi') from dual;

它假设今天的日期,时间成分为12:34