我正在记录时间段中的时间段。如下所示:
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分钟。
答案 0 :(得分:0)
因为,这可能会导致一个非常复杂的查询,我选择使用代码而不是查询进行拆分。
但是,如果有人能够创建该查询,我很乐意看看。