MYSQL - MAX()返回错误的日期

Bea*_*aft 2 mysql sql max

我有一个像这样的mysql表

+----------+----------+-------------------+
| entrykey | user_key |     validfrom      |
+----------+----------+-------------------+
|        1 |        3 | 2016-4-1 0:0:0.0  |
|        2 |        3 | 2016-12-1 0:0:0.0 |
|        3 |        2 | 2016-12-1 0:0:0.0 |
|        4 |        2 | 2016-3-1 0:0:0.0  |
+----------+----------+-------------------+
Run Code Online (Sandbox Code Playgroud)

现在我试图只获得validfrom是最新的每个用户的行.所以我正在做这样的查询:

SELECT entrykey, user_key, max(validfrom)
FROM table
Group by user_key;
Run Code Online (Sandbox Code Playgroud)

它几乎适用于我的所有数据,只是我在表中发布的这两个例子选择了较旧的错误行.因此对于user_key 3,它选择entrykey 1,而对于user_key 2,它选择entrykey 4.

我究竟做错了什么?

小智 6

我想validform应该2016-03-01不是2016-3-01,因为它没有转换成比较之前的日期.