oracle-01841,ORA-01841 :(完整)年份必须介于-4713和+9999之间,而不是0

我明白了

"ORA-01841: (full) year must be between -4713 and +9999, and not be

0."

随机的日历数据。

我运行以下查询:

insert into TEMP_TBL

SELECT COUNT(ea.employee_rk) AS no_logins,

ea.country_cd,

ea.nsb_department,

ea.employee_id,

NULL,

NULL

FROM EMPLOYEE_ACTIVITY ea

JOIN employee_activity_ded ead

ON ead.employee_act_ver_sk=ea.employee_act_ver_sk

JOIN employee_start_end ese

ON ese.employee_id = ea.employee_sk

AND ea.ACTIVITY_DT>=ese.START_REV

AND ea.ACTIVITY_DT

WHERE TRUNC(ea.ACTIVITY_DT) BETWEEN to_date('01-AUG-2017','DD-MON-YYYY HH24:MI:SS') AND to_date('31-AUG-2017','DD-MON-YYYY HH24:MI:SS');

DESC TEMP_TBL;

VALUE_SEC NUMBER

COUNTRY_CD VARCHAR2(50 BYTE)

NSB_DEPARTMENT VARCHAR2(50 BYTE)

EMPLOYEE_RK VARCHAR2(32 BYTE)

ACCESS_DAY DATE

ACCESS_TIME DATE

DESC employee_start_end;

EMPLOYEE_VERSION_SK NUMBER(20,0)

EMPLOYEE_SK NUMBER(20,0)

START_REV DATE

END_REV DATE

EMPLOYEE_ID VARCHAR2(32 BYTE)EMPLOYEE_ACTIVITY的列数很多,但重要的是:

ea.ACTIVITY_DT DATE此错误发生在表中的随机数据上。奇怪的是,当我将TO_DATE添加到ese.START_REV和ese.END_REV时,错误不再出现。

ese.START_REV和ese.END_REV均具有DATE作为数据类型。

在添加TO_DATE之后,相同的查询无错地运行:

insert into TEMP_TBL

SELECT COUNT(ea.employee_rk) AS no_logins,

ea.country_cd,

ea.nsb_department,

ea.employee_id,

NULL,

NULL

FROM EMPLOYEE_ACTIVITY ea

JOIN employee_activity_ded ead

ON ead.employee_act_ver_sk=ea.employee_act_ver_sk

JOIN employee_start_end ese

ON ese.employee_id = ea.employee_sk

AND ea.ACTIVITY_DT>=to_date(ese.START_REV)

AND ea.ACTIVITY_DT

WHERE TRUNC(ea.ACTIVITY_DT) BETWEEN to_date('01-AUG-2017','DD-MON-YYYY HH24:MI:SS') AND to_date('31-AUG-2017','DD-MON-YYYY HH24:MI:SS');

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值