我有一个包含行的数据库,带有时间值。我想要那个时间值的总和(通常,格式是%H:%M)。
我使用SUM值:
SELECT SUM(n_hores) FROM table;
但只有我得到0.0。
我怎么能这样做?
由于
答案 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中应该有一个函数,它返回自上一个纪元以来的毫秒数。一旦你找到了这个,解决方案应该是一个简单的减法并转换为秒,分钟和/或小时。