我的查询中有一个 GROUP BY
子句:
SELECT * FROM currency_data
WHERE currency = 'GBP'
GROUP BY UNIX_TIMESTAMP(date) DIV (1440 * 60)
ORDER BY date ASC
这对大多数记录都适用,但是我有一些记录的日期 < 1970。因此,group by 忽略了这些记录。有什么办法可以让这些记录按工作分组吗?
我的“日期”列是 DATETIME
类型。
最佳答案
首先,select *
和 group by
几乎总是错误的做法。您应该使用聚合函数。
没有理由使用 UNIX_TIMESTAMP()
。就这样
SELECT date(date), currency, min/max/avg/sum . . .
FROM currency_data
WHERE currency = 'GBP'
GROUP BY date(date), currency
ORDER BY date ASC
关于MySQL - 按 UNIX_TIMESTAMP 对 1970 年之前的日期进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46810127/