我有这张桌子。 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中执行此操作?
答案 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;
然后您的代码将运行,您的数据库将被修复。