在oracle中,我得到一个错误:错误日期格式图片在转换整个输入字符串之前结束当我运行以下查询时:
SELECT * FROM TABLE WHERE (trunc(sysdate) - to_date (completion_date,'YYYY-MM-DD'))>0
“完成日期”字段的格式为varchar,其值为 2018-11-30 00:00:00.723000
2018-11-30 00:00:00.723000
jjhzyzn01#
您需要获取字符串的前10个字符,并按以下步骤进行操作:
to_Date(SUBSTR(completion_date,1,10),'YYYY-MM-DD')
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>
kgqe7b3p3#
请使用下面的语句 select * from TABLE where (trunc(sysdate) - to_date(substr(completion_date,1,10),'YYYY-MM-DD'))>0
select * from TABLE where (trunc(sysdate) - to_date(substr(completion_date,1,10),'YYYY-MM-DD'))>0
3条答案
按热度按时间jjhzyzn01#
您需要获取字符串的前10个字符,并按以下步骤进行操作:
fwzugrvs2#
存储为varchar的值是时间戳,而不是日期。
如果你想约会
kgqe7b3p3#
请使用下面的语句
select * from TABLE where (trunc(sysdate) - to_date(substr(completion_date,1,10),'YYYY-MM-DD'))>0