oracle数据库两个日期比较,一个日期比另一个日期大三个月以上的数据。。纠结。
select * from tbl_jycxcfxxb
where (to_date(cfsj,'yyyy-mm-dd hh24:mi:ss'))>(add_months(to_date(jckssj,'yyyy-mm-dd hh24:mi:ss'),3))
无效月份
select cfsj,jckssj,(to_date(jckssj,'yyyy-mm-dd hh24:mi:ss')+ interval '3' Month)
from tbl_jycxcfxxb
where (to_date(cfsj,'yyyy-mm-dd hh24:mi:ss'))>(to_date(jckssj,'yyyy-mm-dd hh24:mi:ss')+ interval '3' Month)
指定月份日期无效
追问:我的cfsj是varchar2类型 都是正常的 都可以查出来
但是比较就会报错可以查出来。正常。都可以的。
答案:看看,你的 cfsj 是什么类型的数据, 都有什么值?
我有点怀疑 to_date(cfsj,'yyyy-mm-dd hh24:mi:ss') ,这步就有错误了。
你执行一下这个查询:
select to_date(cfsj,'yyyy-mm-dd hh24:mi:ss') from tbl_jycxcfxxb
看是否正常?
其他:或者月份大于12,等于0也不可以吧。你这个字段建立的时候就有问题,既然要当日期时间处理,为什么不设定为date格式呢。
上一个:求助!关于Oracle数据库的时间格式设置
下一个:java连接oracle数据库java.sql.SQLException: 无效的列索引问题