oracle 年份值需介于,ORA-01841: (完整) 年份值必须介于 -4713 和 +9999 之间, 且不为 0情况解决...

1. 报错:ORA-01841: (完整) 年份值必须介于 -4713 和 +9999 之间, 且不为 0

2. 我的sql是:

SELECT

distinct(theUser.ACCOUNT) AS ACCOUNT,

theUser.id AS ID,

theUser.REGISTER_DATE AS REGISTER_DATE,

theUser.PROVINCE AS PROVINCE,

theUser.REGIOIN AS REGIOIN,

record.CREATE_DATE,

product.FORMAT AS FORMAT,

record.STATUS,

record.IS_NOTIFY,

record.DOWNLOAD_COUNT

FROM TB_RECOMMEND_RECORD record ,TB_USER theUser ,TB_RECOMMEND_PRODUCT product

record.USER_ID = theUser.ID

AND record.RECOMMEND_ID = product.ID

AND theUser.ACCOUNT LIKE '%'||#{account}||'%'

AND theUser.regioin LIKE '%'||#{regioin}||'%'

AND theUser.province LIKE '%'||#{province}||'%'

AND record.STATUS = #{status.code}

AND record.CREATE_DATE >= TO_DATE(#{startDate},'yyyy-mm-dd hh24:mi:ss')

AND record.CREATE_DATE TO_DATE(#{endDate},'yyyy-mm-dd hh24:mi:ss')

GROUP BY ACCOUNT ,theUser.REGISTER_DATE, PROVINCE,REGIOIN, record. CREATE_DATE, FORMAT, STATUS, IS_NOTIFY, DOWNLOAD_COUNT, theUser.id

ORDER BY DOWNLOAD_COUNT DESC

3. 我的年份本身没有问题,问题是startDate和endDate 这2个参数。本来是在页面上作了时间条件查询,后来不要了,我忘记了去掉sql中对时间的过滤。

于是传给sql的startDate和endDate 的值都是undefine。就报这个错了。我这情况去掉这2个时间过滤,这个sql就OK 了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值