sql-server-2005 – 如何在SQL Server 2005中对一天中的数据进行
发布时间:2020-12-12 06:02:09 所属栏目:MsSql教程 来源:网络整理
导读:我试图在一天内平均SQL Server 2005中的数据.如果我使用简单查询,这是我的数据库看起来像这样 SELECT timestamp,FEEDFROM ROASTER_FEEDORDER timestamp 数据: timestamp Feed 02/07/2011 12:00:01 1246 02/07/2011 12:00:01 1234 02/07/2011 12:00:01 1387 0
我试图在一天内平均SQL Server 2005中的数据.如果我使用简单查询,这是我的数据库看起来像这样
SELECT timestamp,FEED FROM ROASTER_FEED ORDER timestamp 数据: timestamp Feed 02/07/2011 12:00:01 1246 02/07/2011 12:00:01 1234 02/07/2011 12:00:01 1387 02/07/2011 12:00:02 1425 02/07/2011 12:00:03 1263 ... 02/07/2011 11:00:01 1153 02/07/2011 11:00:01 1348 02/07/2011 11:00:01 1387 02/07/2011 11:00:02 1425 02/07/2011 11:00:03 1223 .... 03/07/2011 12:00:01 1226 03/07/2011 12:00:01 1245 03/07/2011 12:00:01 1384 03/07/2011 12:00:02 1225 03/07/2011 12:00:03 1363 当有人选择一个月的日期时,我不知道如何平均饲料,它只显示当天的平均值/总和. 例如,在结果中,如果我选择日为02/07/2011.它会给我这样的东西: 02/07/2011 1234 (average value/or sum) 解决方法早上7:40是00:00后的460分钟晚上7:40是00:00后的1180分钟 midnigth是00:00后的1440分钟 和DATEPART(hh,SomeDate)* 60 DATEPART(mi,SomeDate)为您提供给定SomeDate 00:00后的分钟数 所以,你可以使用: 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) 而对于夜班: SELECT AVG(Temperature) As Nigthshift FROM Drye_data WHERE ( (DATEPART(hh,TimeStamp) BETWEEN 0 AND 460) AND @SelectedDate = DATEADD(dd,1,CAST(FLOOR(CAST(TimeStamp AS FLOAT)) AS DATETIME)) ) OR ( (DATEPART(hh,TimeStamp) BETWEEN 1180 AND 1440) AND @SelectedDate = CAST(FLOOR(CAST(TimeStamp AS FLOAT)) AS DATETIME) ) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |