SQLIte SUM日期时间

时间:2013-03-05 13:59:20

标签: c# sqlite system.data.sqlite

我有一个包含行的数据库,带有时间值。我想要那个时间值的总和(通常,格式是%H:%M)。

我使用SUM值:

SELECT SUM(n_hores) FROM table;

但只有我得到0.0。

我怎么能这样做?

由于

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

你可能最好通过获得“自上一个时代(现代时代)以来的毫秒数”来减去两个日期。在SQLite中应该有一个函数,它返回自上一个纪元以来的毫秒数。一旦你找到了这个,解决方案应该是一个简单的减法并转换为秒,分钟和/或小时。