按小时分割时间

时间:2016-12-14 06:25:02

标签: android sqlite android-sqlite

我正在记录时间段中的时间段。如下所示:

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)对于分裂start_time而言,相反于第二

通过做3个持续时间的总和,我能够得到一天的持续时间。

但是,我需要在给定日期之前按小时分割。特别是在图表上绘制并显示哪个是最繁忙的小时。

我有点无能为力。任何人都可以指导我朝正确的方向发展吗?

编辑:此处的主要问题是在时间跨度为多个小时时包含持续时间。例如,start_time是12:30:00,end_time是13:30:00,那么12-13时间段应该包含30分钟,13-14应该包含30分钟。

1 个答案:

答案 0 :(得分:0)

因为,这可能会导致一个非常复杂的查询,我选择使用代码而不是查询进行拆分。

但是,如果有人能够创建该查询,我很乐意看看。