我正在同一数据库中的两个不同表上尝试相同的sql。
SELECT date_of_birth_1 from Table1 where id = '1111';
输出是43年12月31日。
SELECT date_of_birth_2 from Table2 where id = '1111';
输出又是43年12月31日。
但当我跑的时候
SELECT extract(year from date_of_birth_1) from Table1 where id = '1111';
产量为1943年。
当我跑的时候
SELECT extract(year from date_of_birth_2) from Table2 where id = '1111';
输出为2043。
我不明白发生了什么事,你能帮帮我吗。我希望两个表使用相同的参考年,即1900年。
编辑:这种情况只发生在某些日期。
select EXTRACT(year FROM TO_DATE('01/AUG/43')) from dual;
输出为2043。
select EXTRACT(year FROM TO_DATE('04/MAR/53')) from dual;
产量为1953年。
1条答案
按热度按时间rhfm7lfc1#
默认情况下,oracle只显示年度的最后两位数字。在一张表中,日期似乎是1943年12月31日,而在另一张表中则是2043年12月31日。
您可以使用
to_char()
:如果需要修复数据,可以执行以下操作: