Sql 将时间戳转换为日期oracle

Sql 将时间戳转换为日期oracle,sql,oracle,timestamp,to-date,Sql,Oracle,Timestamp,To Date,我有一个时间戳字段,如下所示: 2015-08-2416:24:28.763915 我只想得到date和insert to date字段 我试过这个: select TO_DATE(CAST (CON1.AF_UPDATE_DT AS VARCHAR(10)), DD/MM/YYYY) FROM AF_EMR_MEM_CONT CON1 但是我得到了这个错误 00904。00000-“%s:无效标识符” 如果我尝试这样做: select AF_UPDATE_DT TO_DATE(

我有一个时间戳字段,如下所示: 2015-08-2416:24:28.763915 我只想得到date和insert to date字段

我试过这个:

select
TO_DATE(CAST (CON1.AF_UPDATE_DT AS VARCHAR(10)), DD/MM/YYYY)
FROM AF_EMR_MEM_CONT CON1
但是我得到了这个错误

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

如果我尝试这样做:

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-“从预期位置未找到关键字”

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

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

查看此

您只需截断时间戳,TRUNC函数的结果是日期:

SELECT TRUNC(LOCALTIMESTAMP) FROM DUAL;

在Oracle中,
date
列仍然有一个时间部分。如果您想将时间设置为
00:00:00
使用
trunc(AF\u UPDATE\u DT)
谢谢您,我尝试了您的解决方案,效果非常好!