【发布时间】:2009-10-01 15:31:56
【问题描述】:
给定一个表 Event 包含一个名为 EventTime 的 DateTime 类型的字段,并且该值将包含日期和时间元素,我需要创建一个汇总查询来计算每个月的事件数。
分组依据字段的结果类型也必须是日期时间,时间元素为 0,并设置为该月的第一天。
这是我目前所拥有的,但它不是很优雅,我不确定它是否特别有效。
SELECT COUNT(1) AS [CountOfEvents],
DATEADD(d, 1 - DAY(EventTime), DATEADD(dd, 0, DATEDIFF(dd, 0, EventTime))) AS [Month]
FROM [Event]
GROUP BY DATEADD(d, 1 - DAY(EventTime), DATEADD(dd, 0, DATEDIFF(dd, 0, EventTime)))
更高效或更优雅的更好建议?
【问题讨论】:
标签: sql sql-server tsql datetime