SUM列按小时(使用DATETIME列)

时间:2012-04-17 18:38:11

标签: sql sql-server

我有一个数据库,我需要使用datetime列来汇总2个值。例如:

Date                Offered
4/16/2012 08:00:00        2
4/16/2012 08:30:00       18
4/16/2012 09:00:00       14
4/16/2012 09:30:30       42

我需要将08:00:00和08:30:00(总计:20)和09:00:00和09:30:00(总计:56)的值相加,等等。

4 个答案:

答案 0 :(得分:2)

这应该对你有用

select datepart(hour,myDate), SUM(Offered)
from myTable
group by 
    datepart(hour,myDate), 
    dateadd(d, 0, datediff(d, 0, myDate))

如果您希望按个别日期汇总,则需要按小时和日期进行分组,否则您将包括其他日期(IE 4月15日等等)

答案 1 :(得分:1)

您的伪代码

Select HOUR(date), sum(offered) as sumO
FROM YourTable
Group By Hour(date)

小时(日期)需要更改为您正在使用的数据库的正确语法。

答案 2 :(得分:0)

SELECT [Hour] = DATEPART(HOUR, [Date]), Offered = SUM(Offered)
  FROM dbo.table_name
  WHERE [Date] >= '20120416'
  AND [Date] < '20120417'
  GROUP BY DATEPART(HOUR, [Date])
  ORDER BY [Hour];

答案 3 :(得分:-1)

使用DatePart功能。 语法取决于您的数据库

Select DatePart("year", Date), Sum(Offered)
From table1
Group By DatePart("year", Date)
相关问题