【问题标题】:Can TO_DATE function return a TIMESTAMP?TO_DATE 函数可以返回 TIMESTAMP 吗?
【发布时间】:2019-07-11 15:24:57
【问题描述】:

TO_DATE 函数能否以任何形式返回 TIMESTAMP?示例:

我有以下输入:'2019-05-31 13:15:25.000000000' 我希望使用TO_DATE 而不是TO_TIMESTAMP,结果是'2019-05-31 13:15:25'

我试过了:

select to_date(substr('2019-05-31 13:15:25.000000000', 1, 19), 'YYYY-MM-DD HH24:MI:SS') from dual;

但它返回:

31/05/2019

【问题讨论】:

  • 您只想在返回输出中显示时间吗?因为它仍然存在,只是没有显示出来。
  • 是的。如果可能的话,我希望它是可见的
  • 如果您将'2019-05-31 13:15:25.000000000' 作为字符串,您可以简单地使用带有TO_DATE 的SUBSTR。如果是 TIMESTAMP,则应用 TO_CHAR。
  • 如果你想去掉时间戳的小数秒cast(timestampcol as date)
  • 当我在 PL/SQL Developer 中执行您的测试语句时,它返回 31-May-2019 13:15:25。我将默认日期格式设置为DD-MMM-YYYY,默认时间格式设置为HH:MM:SS

标签: sql oracle date timestamp to-date


【解决方案1】:

to_date 返回一个date。如果你需要timestamp,你应该使用to_timestamp

【讨论】:

  • 但是 Oracle DATE 仍然有 TIME 部分,只是默认不显示 :-)
【解决方案2】:

TO_DATE 用于读取您在查询中的日期格式,它读取为 YYYY-MM-DD HH24:MI:SS

     to_date(substr('2019-05-31 
    13:15:25.000000000', 1, 19), 'YYYY-. 
     MM-DD HH24:MI:SS') from dual

并提供默认日期格式而不是数据库的默认时间戳格式,以便操作您可以使用的日期TO_CHAR(to_date(substr('2019-05-31 13:15:25.000000000', 1, 19), 'YYYY-. MM-DD HH24:MI:SS'),"your_format") from dual

或使用 to_timestamp(...)

【讨论】:

    【解决方案3】:

    如果您只想显示时间戳值,则保留 style1,否则如果您希望转换为截断的日期时间类型值,则使用 style2,如下所示:

    with t( ts ) as
    (
     select systimestamp from dual
    )
    select to_char(ts,'YYYY-MM-DD HH24:MI:SS') as style1,
           to_timestamp(to_char(ts,'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS') as style2,
           ts as original
      from t;
    
    STYLE1              STYLE2                           ORIGINAL
    ------------------- -------------------------------  -----------------------------------
    2019-07-11 17:03:15 11-JUL-19 05.03.15.000000000 PM  11-JUL-19 05.03.15.298742 PM +01:00
    

    【讨论】:

      【解决方案4】:

      您使用castdatetimestamp 值之间进行转换。

      但是我不确定您的起始数据类型是什么,或者为什么您需要专门使用 to_date() 来返回时间戳。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-09
        • 1970-01-01
        相关资源
        最近更新 更多