我将我的应用程序从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
?
答案 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