【问题标题】:Split time period by hour按小时拆分时间段
【发布时间】: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


【解决方案1】:

因为,这可能会导致非常复杂的查询,我选择用代码而不是在查询中分割。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-26
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多