2013-03-05 56 views
1

我有一個數據庫,包含時間值的行。我想要一個SUM時間值(一般來說,格式是%H:%M)。SQLIte SUM datetimes

我用SUM值這樣的:

SELECT SUM(n_hores) FROM table; 

但只有我得到0.0。

我該怎麼做?

感謝

回答

1

你可能會更好過減去獲得兩個日期「自從上一次劃時代又名(現代時期)的毫秒數。」在SQLite中應該有一個函數,它返回自上一個紀元以來的毫秒數。一旦你找到了這個,解決方案應該是一個簡單的減法和轉換爲秒,分鐘和/或小時。

2

hh:mm格式的時間值是字符串,字符串不能有意義地相加。

您應該將這些時間值轉換成一個數字(strftime(%s)回報的秒數自1970-01-01,所以你必須減去從當天開始的偏移量來獲得相應的秒數你的時間價值):

SELECT sum(strftime('%s', MyTime) - strftime('%s', '00:00')) FROM MyTable 

您也可以在此秒數轉換回時間字符串(time()回報它hh:mm:ss格式):

SELECT time(sum(strftime('%s', MyTime) - strftime('%s', '00:00'))) FROM MyTable 
+0

瓦我這樣做從表中選擇strftime('%s',n_hores),我得到空值:S n_hores是DATETIME列 – EsteveBlanch 2013-03-05 15:14:49

+0

該列中的字符串格式不是'hh:mm'嗎? – 2013-03-05 15:37:32

+0

格式是HH:mm(示例0:15) – EsteveBlanch 2013-03-05 15:41:32