我读了一篇关于按日/月/年的时间间隔生成报告的文章(http://www.plumislandmedia.net/mysql/sql-reporting-time-intervals/
例如,使用这个sql我可以报告每月总销售额:
SELECT DATE(DATE_FORMAT(sales_time, '%Y-%m-01')) AS month_beginning,
SUM(gross) AS total,
COUNT(*) AS transactions
FROM sales
GROUP BY DATE(DATE_FORMAT(sales_time, '%Y-%m-01'))
ORDER BY DATE(DATE_FORMAT(sales_time, '%Y-%m-01'))
但是我无法按小时创建一个sql-report ...
这不起作用...... :(
DATE_FORMAT(sales_time, '%Y-%m-%d %H:00:00') // not working...
如何创建按小时生成报告的查询?
答案 0 :(得分:1)
如果你到处重复这个表达,它应该有用。但是,在MySQL中,您可以在group by
(以及order by
)中使用列别名,因此您可以这样做:
SELECT DATE_FORMAT(sales_time, '%Y-%m-%d %H:00:00') AS byhour,
SUM(gross) AS total,
COUNT(*) AS transactions
FROM sales
GROUP BY byhour
ORDER BY byhour;
表达式的问题很可能是date()
- 它会从表达式中删除时间组件。