如何在MySQL中从数据库中选择最新日期

时间:2014-04-28 02:46:55

标签: mysql sql max

我在MySQL中的日期列表的格式为" MM-DD-YYYY"当我尝试从表中获取最新日期时,它只返回一年的最后一个日期,如12-01-2014,而不是返回最新日期03-16-2016

付款历史记录表:

 to_date
 03-16-2016 
 12-01-2014
 11-07-2014
 10-03-2014
 01-09-2014

我使用了以下查询:

SELECT MAX(to_date) FROM paymenthistory WHERE empid=59;

Result : 12-01-2014

相关文章:Get the latest date from grouped MySQL data

提前致谢

4 个答案:

答案 0 :(得分:2)

您正在处理字符串,而不是原生日期,因此您获得了最长日期。

将这些字符串转换为ACTUAL mysql日期/日期时间值,或者您必须使用丑陋的黑客,例如

SELECT MAX(STR_TO_DATE(to_date, '%m-%d-%Y'))

并且表现将非常糟糕。 MySQL的原生日期格式是yyyy-mm-dd hh:mm:ss,这是一个自然的"最重要的第一个"格式。如果您的日期字符串的格式是这样的,那么即使是max(字符串)也可以。

答案 1 :(得分:0)

听起来你的日期列实际上是一个VARCHAR格式,因为它将12-01-2014视为最后一个日期,只有当存储为VARCHAR时才会生效。

确保您的to_date列是DATE类型。

答案 2 :(得分:0)

你试过这个吗?

SELECT TOP 1 * FROM paymenthistory WHERE empid = 29 ORDER BY to_date DESC;

答案 3 :(得分:0)

对于mysql试试这个

SELECT * FROM paymenthistory WHERE empid=59 ORDER BY to_date DESC LIMIT 1;