我把我的应用从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呢?
发布于 2011-02-24 00:05:48
如果要按格式化的日期时间分组,请将其传递到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
https://stackoverflow.com/questions/5093404
复制相似问题