发生了一些不寻常的事情。迁移时,我有一些日期超过 2050 年(例如,20.05.2050、21.11、2051),但由于某种原因,Oracle 将它们更改为 1950、1951 等。如果你问我,这很烦人,而且是客户报告的。这些是退休日期,所以显然不能在 1950 年代和 1960 年代
原始表中的日期类似于 YYYYMMDD 格式,即 20500130。所以这是我的合并语句
MERGE INTO employment_data emp
USING temp_02 src
ON (TO_NUMBER(src.id) = emp.id)
WHEN MATCHED THEN UPDATE SET
emp.retirement_day = DECODE(TO_NUMBER(src.retirement), 0, NULL, TO_DATE(src.retirement, 'YYYY.MM.DD'));
其他日期都可以(例如 20301204),但 2050 年之后的任何日期都会出错。知道如何解决这个烦恼吗?
提前谢谢:-)