【问题标题】:Convert string into a time format将字符串转换为时间格式
【发布时间】:2016-09-06 08:29:46
【问题描述】:

在 Oracle 11g 中,如何将“1234”这样的字符串转换为“12:34”这样的时间格式。

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

【问题讨论】:

  • 不要在字符串上调用to_char - 它已经是字符串了!

标签: oracle date format


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    我找到了:

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

    感谢您的所有帮助。

    【讨论】:

      【解决方案3】:
      select to_date('1234','hh24mi') from dual;
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-08-31
        • 2016-02-19
        • 2015-11-16
        • 1970-01-01
        • 1970-01-01
        • 2011-11-18
        相关资源
        最近更新 更多