我目前正在尝试以6小时为间隔从我的数据库中获取数据。数据库信息:SQL Server 2000.我获取每小时数据的工作代码如下:
SELECT
DATEADD(hour, DATEDIFF(hour, 0, DateData), 0),
AVG(OtherData) AS AvgData
FROM DATASITE
GROUP BY DATEADD(hour, DATEDIFF(hour, 0, DateData), 0)
ORDER BY DATEADD(hour, DATEDIFF(hour, 0, DateData), 0);
如何创建一个查询来以6小时为间隔而不是按小时间隔获取数据?
答案 0 :(得分:1)
你可以使用DATEPART
和整数舍入来获得6小时的桶,如下所示:
SELECT
DATEPART(hour,DateData)/6 Bucket,
AVG(OtherData) AS AvgData
FROM DATASITE
GROUP BY DATEPART(hour,DateData)/6
ORDER BY DATEPART(hour,DateData)/6;
请记住,水桶将对应于午夜-6AM,6A-12P,12P-6P和6P-午夜,并且它们将通过上述查询表示为0,1,2和3。