按 Unix 时间戳的时隙分组

Group by time slots from Unix timestamp

我已经 date/time 保存为 Unix 时间戳(13 位数字)。我想要做的是按时间 period/range 对行进行分组。例如,如下所示,

    total_order |  time_slot
    24             10 AM - 2 PM
    36             2 PM - 6PM
    30             6 PM- 10PM
    42             10PM - 2AM
    28             2AM - 6AM
    8              6AM - 10AM

我真的对如何处理这个问题一头雾水?有什么建议么?谢谢。

使用strftime() 从时间戳中提取小时数。 要得到四小时范围的数字,请除以四。 (需要偏移量,因为范围未与一天的开始对齐。)

SELECT ...
FROM ...
GROUP BY strftime('%H', timestamp, 'unixepoch', '+2 hours') / 4