8

すべての時差を合計して、ボランティアが働いた合計時間を表示したいと考えています。時差の結果セットを取得するのは簡単です。

Select timediff(timeOut, timeIn) 
FROM volHours 
WHERE username = 'skolcz'

これは時間ごとの時間のリストを提供しますが、それを合計して総計にしたいと思います。

したがって、結果セットが次の場合:

12:00:00
10:00:00
10:00:00
08:00:00

合計で40時間になります。

これには、次のような方法があります。

SELECT SUM(Select timediff(timeOut,timeIn) 
FROM volHours 
WHERE username = 'skolcz') as totalHours

?

4

3 に答える 3

17
Select  SEC_TO_TIME(SUM(TIME_TO_SEC(timediff(timeOut, timeIn)))) AS totalhours
FROM volHours 
WHERE username = 'skolcz'

そうでない場合は、おそらく:

Select  SEC_TO_TIME(SELECT SUM(TIME_TO_SEC(timediff(timeOut, timeIn))) 
FROM volHours 
WHERE username = 'skolcz') as totalhours
于 2013-02-09T16:28:06.143 に答える
3

Matthewからほぼ答えが得られます。必要なのは、キャストを追加することだけです。

Select CAST(SUM(timediff(timeOut, timeIn)) as time) as totalhours
FROM volHours 
WHERE username = 'skolcz'    
于 2013-02-09T16:36:43.157 に答える
1

そのようなことを試してください

 Select SUM(timediff(timeOut, timeIn)) as total
 FROM volHours 
 WHERE username = 'skolcz'
于 2013-02-09T16:30:57.103 に答える