How to average/sum data in a day in SQL Server 2005

后端 未结 8 2318
执念已碎
执念已碎 2020-12-12 08:25

I\'m trying to average data in SQL Server 2005 in a day. Here is what my database look like this if I use simple query as

SELECT timestamp, FEED
FROM ROASTE         


        
8条回答
  •  -上瘾入骨i
    2020-12-12 09:03

    7:40am is 460 minutes after 00:00

    7:40pm is 1180 minutes after 00:00

    midnigth is 1440 minutes after 00:00

    And DATEPART(hh, SomeDate)*60 + DATEPART(mi, SomeDate) gives you the amount of minutes after 00:00 for a given SomeDate

    So, you could use:

    SELECT
        AVG(Temperature) As Dayshift
    FROM Drye_data
    WHERE DATEPART(hh, TimeStamp)*60 + DATEPART(mi, TimeStamp) BETWEEN 460 AND 1180
          AND @SelectedDate = CAST(FLOOR(CAST(TimeStamp AS FLOAT)) AS DATETIME)
    

    and for the Nightshift:

        SELECT
        AVG(Temperature) As Nigthshift
    FROM Drye_data
    WHERE (
            (DATEPART(hh, TimeStamp)*60 + DATEPART(mi, TimeStamp) BETWEEN 0 AND 460)
            AND @SelectedDate = DATEADD(dd, 1, CAST(FLOOR(CAST(TimeStamp AS FLOAT)) AS DATETIME))
          )
          OR 
          (
             (DATEPART(hh, TimeStamp)*60 + DATEPART(mi, TimeStamp) BETWEEN 1180 AND 1440) AND @SelectedDate = CAST(FLOOR(CAST(TimeStamp AS FLOAT)) AS DATETIME)
          )
    

提交回复
热议问题