Android 按小时划分时间段

Android 按小时划分时间段,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,我用纪元毫秒记录时间段。如下图所示: start_time | end_time | duration ----------------------------------------- 1481460261912 | 1481460716464 | 454552 1481461049219 | 1481461291862 | 242643 .... 此时间以UTC为单位,因为它存储为历元。现在,我可以通过3个查询将一天的时间转换为localtime,如下所示: 1) 2) 3

我用纪元毫秒记录时间段。如下图所示:

start_time    | end_time      | duration
-----------------------------------------
1481460261912 | 1481460716464 | 454552
1481461049219 | 1481461291862 | 242643
....
此时间以UTC为单位,因为它存储为历元。现在,我可以通过3个查询将一天的时间转换为localtime,如下所示:

1)

2)

3)与第二个相反,用于分割开始时间

通过计算3个持续时间的总和,我可以得到一天的持续时间

但是,我需要为给定的日期按小时划分。特别是在图表上绘图并显示哪一个小时是最忙的

我不知道该怎么做。有人能给我指引正确的方向吗


编辑:这里的主要问题是在时间跨度为多个小时时包含持续时间。例如,开始时间是12:30:00,结束时间是13:30:00,那么12-13个时间段应该包含30分钟,13-14个时间段应该包含30分钟。

由于这可能会导致非常复杂的查询,我选择使用代码拆分,而不是在查询中拆分


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

由于这可能会导致一个非常复杂的查询,因此我选择使用代码拆分,而不是在查询中拆分


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

若要获取所有小时的行,请创建另一个包含所有24小时的表,并将其与日志表连接。@CL.,因此,我的理解是我应该同时登录这两个表?否;另一个表正好包含24行。@CL.举个小例子就好了。若要获取所有小时的行,请创建另一个包含所有24小时的表,并将其与日志表连接。@CL.,所以,我的理解是我应该同时登录这两个表?否;另一个表正好包含24行。@CL。举个小例子就好了。
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')
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')