我有一个数据库,其中日期以DD.MM.YY格式表示为字符串(不要问)。我想通过尝试这个来找到专栏中的最新日期:
select max(to_date(my_date, 'DD.MM.YY')) from my_table;
这给出了1999年的最新日期,但我知道该栏目中有更晚的日期。我认为这是因为这一年是YY。我怎样才能找到正确的日期?
答案 0 :(得分:6)
尝试
select max(to_date(my_date, 'DD.MM.RR')) from my_table;
YY说,假设当前世纪,所以' 99'变成2099年。
SQL> select to_date('01.01.77', 'DD.MM.YY') from dual;
TO_DATE('01.01.77','DD.MM.YY')
01-JAN-2077
SQL>
SQL> select to_date('01.01.77', 'DD.MM.RR') from dual;
TO_DATE('01.01.77','DD.MM.RR')
01-JAN-1977
如果您想让自己更轻松,请创建一个新表并修复数据类型,或至少add a Virtual column到现有表。