【问题标题】:casting timestamp as date oracle将时间戳转换为日期预言机
【发布时间】:2015-09-06 07:37:51
【问题描述】:

我有这个 Timestamp 字段,如下所示: 2015-08-24 16:24:28.763915 我只想获取日期并插入到日期字段

我试过这个:

select
TO_DATE(CAST (CON1.AF_UPDATE_DT AS VARCHAR(10)), DD/MM/YYYY)
FROM AF_EMR_MEM_CONT CON1

但我得到了这个错误

00904。 00000 - “%s:无效标识符”

如果我尝试执行此 sql:

select AF_UPDATE_DT
       TO_DATE(CAST (CON1.AF_UPDATE_DT AS VARCHAR(10)), YYYY/MM/DD)
FROM AF_EMR_MEM_CONT CON1

我得到错误:

00923。 00000 - “FROM 关键字未在预期位置找到”

【问题讨论】:

  • date 列在 Oracle 中仍有时间部分。如果要将时间设置为00:00:00,请使用trunc(AF_UPDATE_DT)

标签: sql oracle timestamp to-date


【解决方案1】:

你可以截断 TIMESTAMP,TRUNC 函数的结果是 DATE:

SELECT TRUNC(LOCALTIMESTAMP) FROM DUAL;

【讨论】:

    【解决方案2】:

    您可以使用SUBSTR从字符串中提取日期部分,然后使用TO_DATE将其修改为日期对象:

    select TO_DATE(
      SUBSTR('2015-08-24 16:24:28.763915', 1, 10), 'YYYY-MM-DD') -- 2015-08-24
    from DUAL
    

    看到这个demo

    【讨论】:

    • 谢谢您,我尝试了您的解决方案,效果很好!
    猜你喜欢
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 2017-04-25
    • 2022-01-08
    相关资源
    最近更新 更多