2015-09-26 4 views
0

У меня есть дата/время, сохраненное как временная метка Unix (13 цифр). То, что я пытаюсь сделать, это группировать строки по периоду/диапазону. Например, как показано ниже,Группа по временным интервалам от отметки времени Unix

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 

Я действительно рисую пустую информацию о том, как подойти с этим? Какие-либо предложения? Благодарю.

+1

метка% 86400 время суток (в часовом поясе) в секундах, начиная с полуночи ... – Henry

+0

@henry как Я группируюсь по диапазону? – redGREENblue

+1

Вы можете использовать массив с одним элементом на каждый ковш. Пронумеруйте записи, определите ведро и увеличьте соответствующий элемент массива. – Henry

ответ

1

Используйте strftime(), чтобы извлечь часы из метки времени. Чтобы получить число четырехчасового диапазона, разделите его на четыре. (Смещение необходимо, поскольку диапазоны не alignted к началу дня.)

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

Есть ли способ учета часового пояса в самом запросе? – redGREENblue

+1

Отрегулируйте смещение. –

+0

Итак, для GMT + 5.30 это будет «unixepoch», «+5.30 часов»)/4? – redGREENblue

Смежные вопросы