MySQL在查询中命名解析顺序

时间:2011-02-23 16:02:54

标签: mysql

我将我的应用程序从SQLite切换到MySQL

我有嵌套查询(数字是可变的,这对我来说总是保持相同的名字很有用),如下所示:

SELECT DATE_FORMAT(datetime, '%Y-%m-%d %H:00:00') as datetime FROM (
    SELECT datetime FROM (...) AS T
) AS T GROUP BY datetime
SQLIte GROUP BY datetime中的

在格式化的日期进行评估,因此分组发生在MySQL普通datetime时,因此我没有分组。

为了更好地解释这在MySQL中的作用,但是制动我的循环必须在每个循环中重命名列和/或表AS

SELECT DATE_FORMAT(datetime, '%Y-%m-%d %H:00:00') as new_datetime FROM (
    SELECT datetime FROM (...) AS T
) AS T GROUP BY new_datetime

那么,有没有办法让MySQL组成为我想要的datetime

1 个答案:

答案 0 :(得分:0)

如果要按格式化的日期时间进行分组,请将其传递给group by子句:

GROUP BY DATE_FORMAT(datetime, '%Y-%m-%d %H:00:00')

这将避免在不同的分钟/秒上多行。

为避免两次调用DATE_FORMAT,您可以使用以下内容:

SELECT @dtm := DATE_FORMAT(datetime, '%Y-%m-%d %H:00:00') as datetime FROM tablename AS T GROUP BY @dtm