SQL:查找日期在varchar字段中的最新日期,年份为YY

时间:2018-04-23 12:51:33

标签: sql oracle datetime

我有一个数据库,其中日期以DD.MM.YY格式表示为字符串(不要问)。我想通过尝试这个来找到专栏中的最新日期:

select max(to_date(my_date, 'DD.MM.YY')) from my_table;

这给出了1999年的最新日期,但我知道该栏目中有更晚的日期。我认为这是因为这一年是YY。我怎样才能找到正确的日期?

1 个答案:

答案 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到现有表。