以下是我的表格列:
Time | Close | High | Low | Open | pairVolume | Trades | Volume
我希望按时间范围拥有我的数据组。
现在棘手的部分是这个范围是自定义的(它是一个用户输入,可以很好地分组10分钟,2小时,甚至5天)
我的时间字段自纪元以来以毫秒存储。
我现在找到的解决方案,我不确定:
SELECT time + (21600000 - (time%21600000)) as gap, count(time)
FROM price_chart
WHERE time >= 1517418000000 and time <= 1518195600000
GROUP BY gap
21600000是6小时(毫秒)
时间是自纪元以来的时间
答案 0 :(得分:2)
是的,它有效。
使用下面的公式将一些数字放入excel中,它对我有用。您的间隙值将作为每个时间范围分组的顶端返回。
SELECT time + (21600000 - (time%21600000)) as gap ...
使用以下内容:
SELECT time - (time%21600000) as gap_bottom ...
会返回每个时间范围分组的底端。您可以将其添加为额外的计算列,并返回。
编辑/ PS:
您还可以在划分出纪元时间1,000毫秒并将其转换为SQLite unixepoch
之后使用SQLite日期格式设置功能:
strftime('%Y-%m-%d %H:%M:%S', datetime(1517418000000 / 1000, 'unixepoch') )
... for ...
SELECT strftime('%Y-%m-%d %H:%M:%S', datetime( (time + (21600000 - (time%21600000))) / 1000, 'unixepoch') ) as gap ...