Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL中cast和max-date的咨询_Mysql_Sql_Date_Select - Fatal编程技术网

MySQL中cast和max-date的咨询

MySQL中cast和max-date的咨询,mysql,sql,date,select,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 | 0

我有这张桌子。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中执行此操作?

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

SELECT   *
FROM     men
ORDER BY STR_TO_DATE(tdate, '%d.%m.%Y') DESC
LIMIT    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;
然后,您的代码将工作,您的数据库将被修复