我在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
提前致谢
答案 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;