2012-04-17 49 views
1

我有一個數據庫,需要使用datetime列求和2個值。例如:按小時計算SUM列(使用DATETIME列)

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 

我需要總結的8點00分○○秒的值八時三十零分00秒(總:20)和9時00分○○秒與9時30分〇〇秒(共:56)和等等。

+2

您正在使用哪個數據庫? MySql,SQL Server,Oracle? – hkutluay 2012-04-17 18:39:39

回答

2

這應該爲你工作

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

你需要按兩個小時,如果你想通過個人總結當天的日期,否則你會包括其他天數(即4月15日等。 )

-1

使用DatePart函數。 語法取決於您的數據庫

Select DatePart("year", Date), Sum(Offered) 
From table1 
Group By DatePart("year", Date) 
+0

這聽起來像他想按小時計算,而不是按年計算。 – 2012-04-17 18:42:04

+0

類似的概念,但你可能想檢查它是否也是相同的日期 – Brian 2012-04-17 18:45:53

+0

我希望能夠按小時完成它,並確保它是相同的日期。謝謝! – Brad 2012-04-17 18:51:37

1

你的僞代碼

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

小時(日期)將需要進行修改,以正確的語法爲您正在使用的數據庫。

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]; 
+0

我不認爲這是非常有用的,因爲它只適用於一天。 – 2012-07-19 10:01:08

+1

@Stefan呃,它只能工作一天,因爲那是使用示例的日期範圍。你可以在那裏放任何日期範圍。 – 2012-07-19 11:27:30