MS SQL Server 2008 时间区间分组
处理基于时间的数据时,按小时或分钟等时间间隔对记录进行分组非常有用。在 Microsoft SQL Server 2008 中,GROUP BY
子句提供了一种便捷的方法来实现此目的。
以下代码演示如何按小时对记录进行分组:
<code class="language-sql">SELECT [Date] FROM [FRIIB].[dbo].[ArchiveAnalog] GROUP BY DATEPART(HOUR, [Date])</code>
要按 10 分钟间隔对记录进行分组,请使用以下语法:
<code class="language-sql">SELECT MIN([Date]) AS RecT, AVG(Value) FROM [FRIIB].[dbo].[ArchiveAnalog] GROUP BY DATEPART(HOUR, [Date]), (DATEPART(MINUTE, [Date]) / 10) ORDER BY RecT</code>
但是,此查询返回包含毫秒的 datetime 值。要排除毫秒,请将以下代码添加到您的查询中:
<code class="language-sql">GROUP BY DATEPART(YEAR, DT.[Date]), DATEPART(MONTH, DT.[Date]), DATEPART(DAY, DT.[Date]), DATEPART(HOUR, DT.[Date]), (DATEPART(MINUTE, DT.[Date]) / 10)</code>
以上是如何在 MS SQL Server 2008 中对时间间隔进行分组?的详细内容。更多信息请关注PHP中文网其他相关文章!