关于MySQL中的强制转换和最大日期的咨询

时间:2015-10-17 14:52:33

标签: mysql sql date select

我有这张桌子。 TDate是一个字符串(不是日期)。

MEN    
===

id       |   Name       |      TDate    
1        |   aa         |      01.05.2015    
2        |   bb         |      05.05.2015    
3        |   cc         |      07.01.2015    
4        |   dd         |      04.04.2015

我需要获得最长日期:

2        |   bb           |       05.05.2015

我如何在MySQL中执行此操作?

2 个答案:

答案 0 :(得分:3)

tdate转换为实际日期,按其排序,并将查询限制为单行:

SELECT   *
FROM     men
ORDER BY STR_TO_DATE(tdate, '%d.%m.%Y') DESC
LIMIT    1

答案 1 :(得分:1)

修复您的数据以将值存储为日期:

alter table t
    add column newTdate date;

update t
    set newTdate = str_to_date(Tdate, '%d.%m.%Y');

alter table t
     drop column Tdate;

alter tabe t
     change column newTdate Tdate;

然后您的代码将运行,您的数据库将被修复。