错误日期格式图片在转换整个输入字符串之前结束

b4wnujal  于 2021-07-24  发布在  Java
关注(0)|答案(3)|浏览(328)

在oracle中,我得到一个错误:
错误日期格式图片在转换整个输入字符串之前结束
当我运行以下查询时:

SELECT *
FROM TABLE
WHERE (trunc(sysdate) - to_date (completion_date,'YYYY-MM-DD'))>0

“完成日期”字段的格式为varchar,其值为 2018-11-30 00:00:00.723000

jjhzyzn0

jjhzyzn01#

您需要获取字符串的前10个字符,并按以下步骤进行操作:

to_Date(SUBSTR(completion_date,1,10),'YYYY-MM-DD')
fwzugrvs

fwzugrvs2#

存储为varchar的值是时间戳,而不是日期。

SQL> alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss' ;
Session altered 

SQL>  select to_timestamp('2018-11-30 00:00:00.723000','YYYY-MM-DD HH24:MI:SS.FF') from dual;

TO_TIMESTAMP('2018-11-3000:00:00.723000','YYYY-MM-DDHH24:MI:SS.FF')
---------------------------------------------------------------------------
30-NOV-18 12.00.00.723000000 AM

如果你想约会

SQL> select to_date(to_char(to_timestamp('2018-11-30 00:00:00.723000','YYYY-MM-DD HH24:MI:SS.FF'),'YYYY-MM-DD HH24:MI:SS')) from dual;

TO_DATE(TO_CHAR(TO_
-------------------
2018-11-30 00:00:00

SQL>
kgqe7b3p

kgqe7b3p3#

请使用下面的语句 select * from TABLE where (trunc(sysdate) - to_date(substr(completion_date,1,10),'YYYY-MM-DD'))>0

相关问题