Sql server 微软SQL。我需要从03:00到03:00按天分组

Sql server 微软SQL。我需要从03:00到03:00按天分组,sql-server,Sql Server,我在编写sql查询时遇到了一个问题。假设我们一天有5班工作。 第五班周一22:00开始,周二02:30结束。 我如何将第5班的所有数据包括在周一的日期中 SELECT CONVERT(date,t_stamp) AS 'Date', COUNT(TT1_Classed_Volume) AS 'Count', SUM(TT1_Classed_Volume) AS 'Volume' FROM TT1_table GROUP BY CONVER

我在编写sql查询时遇到了一个问题。假设我们一天有5班工作。 第五班周一22:00开始,周二02:30结束。 我如何将第5班的所有数据包括在周一的日期中

SELECT    CONVERT(date,t_stamp) AS 'Date',
          COUNT(TT1_Classed_Volume) AS 'Count',
          SUM(TT1_Classed_Volume) AS 'Volume'
FROM      TT1_table
GROUP BY  CONVERT(date,t_stamp)
Order By 'Date'

如果您正在寻找小时选择,您可以这样做

     SELECT    DATEPART(HOUR, t_stamp) AS 'Date',
      COUNT(TT1_Classed_Volume) AS 'Count',
      SUM(TT1_Classed_Volume) AS 'Volume'
     FROM      TT1_table
     where DATEPART(HOUR, GETDATE())=18
      GROUP BY  DATEPART(HOUR, t_stamp)
     Order By 'Date'

请发布样本数据,以便更好地提供帮助。我假设您的datetime列将采用24小时时间格式。请试试这个:

SELECT DATEPART(HOUR, GETDATE())  -- will give you the current hour.


SELECT    CONVERT(date,t_stamp) AS 'Date',
          COUNT(TT1_Classed_Volume) AS 'Count',
          SUM(TT1_Classed_Volume) AS 'Volume'
FROM      TT1_table
WHERE DATEPART(HOUR, shift_begin_time_stamp) >= 22 and DATEPART(HOUR, shift_end_time_stamp) <= 5
GROUP BY  t_stamp
Order By 'Date'

在做微积分之前,你可以从周二的记录中减去几个小时。或者最好在物理表中定义班次,然后按班次使用中间和组进行连接。无论哪种方式,如果你能提供你的表格结构、样本数据和想要的结果,那就太好了。减去2.5小时,那么前2:30小时将计入前一天的班次:dateaddhour,2.5,t_stampThank you。CONVERTdate,dateaddhour,-3,图章有效
SELECT DATEPART(HOUR, GETDATE())  -- will give you the current hour.


SELECT    CONVERT(date,t_stamp) AS 'Date',
          COUNT(TT1_Classed_Volume) AS 'Count',
          SUM(TT1_Classed_Volume) AS 'Volume'
FROM      TT1_table
WHERE DATEPART(HOUR, shift_begin_time_stamp) >= 22 and DATEPART(HOUR, shift_end_time_stamp) <= 5
GROUP BY  t_stamp
Order By 'Date'