SQL Server-指定一天中的分组时间

gttommo

我有这样的查询:

SELECT SUM(value) FROM GroupTest GROUP BY DATEPART(DAY,timetag)

它按预期按天对数据进行分组。

有没有办法指定一天中的分组时间?例如,我希望3月5日是从'2015-03-05 06:00:00'到,'2015-03-06 05:59:00'并将其分组为2015-03-05(希望“日”是从早上6点到第二天早上5:59)。

如何做到这一点?

使用SQL Server 2008 R2。

编辑以添加示例:作为一个基本示例,如果我们采用以下数据:

id  timetag                 value
1   2015-01-01 06:00:00.000 5
1   2015-01-01 09:00:00.000 5
1   2015-01-01 12:00:00.000 5
1   2015-01-01 15:00:00.000 5
1   2015-01-01 18:00:00.000 5
1   2015-01-01 21:00:00.000 5
1   2015-01-02 00:00:00.000 5
1   2015-01-02 03:00:00.000 6
1   2015-01-02 06:00:00.000 6
1   2015-01-02 09:00:00.000 6

我想要以下查询:

select sum(value) from GroupTest group by datepart(day,timetag)

返回

2015-01-01 21:00:00.000 41 (前8行)

2015-01-02 09:00:00.000 12 (最后两行)

谢谢。

菲利克斯·帕米坦(Felix Pamittan)

试试这个:

由于您将1天的定义在6个月后“停用”,因此您可以GROUP BY TimeTag-6个小时:

SELECT SUM(Value)
FROM GroupTest
GROUP BY DATEPART(DAY, DATEADD(HOUR, -6, TimeTag))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

对于给定的日期范围,我需要一个动态的月份列表(包括第一天和最后一天),SQL Server

SQL Server代理作业历史记录-仅删除一天

仅从SQL Server中的表中的前一天恢复数据

使用SQL Server 2012生成一天中多个小时的日历表

获取每月的最后一天(SQL Server 2008R2)

分组追踪的7天与昨天的SQL Server

SQL Server会获得带有后缀名称的表的名称,直到前一天

获取适用于Oracle和SQL Server的上个月的最后一天

每月每一天的SQL Server 2008出勤报告

SQL:同一天的时间戳记间隔之和

基于SQL Server班次的工作日,周末,公共假日和一天中的时间

SQL-按季度最后一天分组

到目前为止,在SQL Developer中增加一天的时间

如何在sql server 2005中枢转一天的打卡次数?

SQL Server中的高级分组

SQL Server-前一天的数据检索

SQL Server中的分组总和

在sql中开始新的一天

当在SQL Server中给出结束日期和月份数差异时,查找存储过程以查找月份的第一天

SQL Server 2008查询同一天的检查日期

在SQL Server中重新分组

SQL Server:每天我有多条记录,我只想返回第一天

如何在 sql server 的 UNIX 时间戳中添加一天?

如何在Sql Server查询中获取每月最后一天的行

SQL Server 中上个月的最后一天

如果该月不存在该日期,如何更改 SQL Server 中的日期并设置该月的最后一天

在 SQL 中从一天开始(直到它发生变化)分组和获取唯一值

如何从 SQL SERVER 中的日期时间戳的时间部分创建一天的四分之一

SQL Server:返回一天中最近时间的坐标