1

我有一个数据库,我需要使用 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

4 回答 4

4

这应该适合你

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

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

于 2012-04-17T18:52:04.833 回答
1

你的伪代码

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

需要将 Hour(date) 更改为您正在使用的数据库的正确语法。

于 2012-04-17T18:42:24.113 回答
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];
于 2012-04-17T19:35:58.183 回答
-1

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

Select DatePart("year", Date), Sum(Offered)
From table1
Group By DatePart("year", Date)
于 2012-04-17T18:41:06.520 回答