【发布时间】:2017-01-23 18:54:31
【问题描述】:
我正在以纪元毫秒记录时间段。如下图:
start_time | end_time | duration
-----------------------------------------
1481460261912 | 1481460716464 | 454552
1481461049219 | 1481461291862 | 242643
....
这个时间是 UTC,因为它被存储为纪元。现在,我可以通过 3 个查询将这个时间转换为一天的本地时间:
1)
SELECT sum(duration) FROM duration_logs
WHERE date(datetime(start_time/1000, 'unixepoch', 'localtime')) = date('now')
AND date(datetime(end_time/1000, 'unixepoch', 'localtime')) = date('now')
2)
SELECT end_time-strftime('%s','now','start of day','utc')*1000 FROM duration_logs
WHERE date(datetime(start_time/1000, 'unixepoch', 'localtime')) != date('now')
AND date(datetime(end_time/1000, 'unixepoch', 'localtime')) = date('now')
3) 与 2nd 相反,用于拆分 start_time
通过计算 3 个持续时间的总和,我可以获得一天的持续时间。
但是,对于给定的日期,我需要按小时拆分。专门用于在图表上绘制并显示最繁忙的时间。
我有点不知道该怎么做。谁能指导我正确的方向?
编辑:这里的主要问题是在时间跨度为多个小时时包括持续时间。例如,start_time 为 12:30:00,end_time 为 13:30:00,则 12-13 时间段应包含 30 分钟,13-14 应包含 30 分钟。
【问题讨论】:
-
要获取所有小时的行,请创建另一个包含所有 24 小时的表并将其与日志表连接。
-
@CL。 , 那么,我的理解是我应该登录两个表?
-
否;另一个表正好包含 24 行。
-
@CL。一个小例子会很棒。
标签: android sqlite android-sqlite