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

uwa*_*345 2 sql oracle datetime

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

select max(to_date(my_date, 'DD.MM.YY')) from my_table;
Run Code Online (Sandbox Code Playgroud)

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

tha*_*ith 6

尝试

select max(to_date(my_date, 'DD.MM.RR')) from my_table;
Run Code Online (Sandbox Code Playgroud)

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   
Run Code Online (Sandbox Code Playgroud)

如果您想让自己更轻松,请创建一个新表并修复数据类型,或者至少将虚拟列添加到现有表中.