sql如下
select count(1) from t where t.create_date > to_date('2022-03-10 12:00:00','yyyy-mm-dd hh24:mi:ss')
或修改为
select count(1) from t where to_char(create_date ,'yyyy-mm-dd hh24:mi:ss')> '2022-03-10 12:00:00'
t是一个视图,oracle版本是12c,create_date类型未知,猜测是date(只有视图权限)。
sql在navicat下执行成功。用jdbc执行报错ora01861。尝试更换各版本驱动,问题依旧,求指教解决方案。
如果要确认视图的字段类型,可以查all_tab_cols视图
select * from all_tab_cols t where t.table_name='视图名称'
如果确认这个字段是date类型,那么你上面写的这两个sql都没问题,这个时候,还有两个地方可能有问题
问题原因确定了,是视图本身的SQL使用了"condition betwenn to_date(sysdate - 180) and to_date(sysdate)"这种写法,在PL/SQL中解析没有任何问题,JDBC解析会出现错误。sysdate本身已经是date类型了,不需要再次to_date()。