账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Oracle报错 ORA-01841:(完整)年份值必须介于 -4713 和 +9999之间,且不为0
    83
    0

    当2个日期相等的时候查询(=)没有问题,当2个日期不相等为条件查询(<>)的时候,就有这个问题了,什么原因?

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 久碍你 普通会员 1楼

      这个错误信息是Oracle中的一种错误,表示你在试图设置或者操作数据库的时间格式时,你所输入的年份值小于-4713或大于+9999,或者年份值为0。

      具体来说,这个错误是基于两种不同的年份计算规则:

      1. 如果你尝试将一个整数与-4713相加,将会得到一个负数,因为整数加负数的结果是负数。
      2. 如果你尝试将一个整数与+9999相加,将会得到一个正数,因为整数加正数的结果是正数。

      因此,你需要确保你的年份值在-4713和+9999之间。你可以使用DATEADD或者TO_CHAR函数来实现这个功能。

      例如,如果你想将一个整数4500与-4713相加,你可以这样做:

      sql SELECT DATEADD(year, -4713, @number) AS year FROM dual;

      如果你想将一个整数4500与+9999相加,你可以这样做:

      sql SELECT TO_CHAR(@number, 'YYYY') AS year FROM dual;

      在上述SQL语句中,@number是一个整数,你可以将其替换为你需要处理的年份值。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部