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

标签 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  |
+----------+----------+-------------------+

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

SELECT entrykey, user_key, max(validfrom)
FROM table
Group by user_key;

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

我做错了什么?

最佳答案

我猜validform应该是2016-03-01而不是2016-3-01 因为之前没有转换成date比较。

关于MYSQL - MAX() 返回错误的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46971081/

相关文章:

c# - session 未在页面之间传递c#

java - 如何将 .min() 或 .max() 作为流的方法参数?

MySQL 通过 COUNT(*) 的标准差限制结果

PHP如何将查询字符串分隔成变量

sql - 如何在sql server 2008中调用标量函数

mysql - 是否可以按索引命名列

LINQ 分组和最大计数

excel - 基于条件的最大值

python - 如何将事件从网页发送到客户端应用程序

bash - MySQL根据给定参数显示最早的重复项