2013-07-10 88 views
0

希望你能帮助我解决这个问题......我需要对存储在SQL Server 2012数据库中的一些数据进行一些分析。将查询结果拆分为15分钟的间隔

我目前得到的查询拆分结果为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' 

任何帮助,你可以给将是巨大的代码。

感谢

亚历

回答

0

不是说你问,但它是高度问题,您比较的日期范围在一个char类型值包含的东西,如“2013年5月21”。例如,“2012年5月22日”呢?

作为一般的方法,如果你想收集时间支架方面的数据,看看这个StackOverflow的问题和答案:How to Round a Time in T-SQL

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