0

希望你能帮我解决这个问题……我需要对存储在 SQL Server 2012 数据库中的一些数据进行一些分析。

我目前有查询将结果分成 1 小时的块,但我还需要查询将结果分成 15 分钟和 30 分钟的块,我不知道该怎么做。我在网上看过,但我发现的东西并没有太大意义。

下面是我用于每小时拆分的代码

SELECT Name, Description, CONVERT(varchar(14), RecordedDateTime, 113) + ':00:00' AS RecordedDateHour,
  COUNT(Id) AS TotalRecordings, MIN(RecordedDateTime) AS MinRecordedDateTime,
  MAX(RecordedDateTime) AS MaxRecordedDateTime,
  COUNT(DISTINCT Id) AS TotalDistinctIds
FROM MainTable
WHERE RecordedDateTime >='21 May 2013' AND RecordedDateTime < '23 May 2013'
GROUP BY Name, Description, CONVERT(varchar(14), RecordedDateTime, 113) + ':00:00'
ORDER BY Name, Description, CONVERT(varchar(14), RecordedDateTime, 113) + ':00:00'

你能提供的任何帮助都会很棒。

谢谢

亚历克斯

4

1 回答 1

0

不是您问的那样,但是您在比较包含“2013 年 5 月 21 日”之类的字符类型值的日期范围时存在很大问题。例如,“2012 年 5 月 22 日”呢?

作为一般方法,如果您想根据时间括号收集数据,请查看这个 StackOverflow 问题和答案:如何在 T-SQL 中舍入时间

然后GROUP BY是四舍五入的时间值。

于 2013-07-10T13:15:22.263 回答