HOUR(FROM_UNIXTIME(1547654400000/1000))
-> 8
- Разделите на 1000, чтобы получить от миллисекунд до "unixtime".
- Преобразовать в формат времени.
- Извлеките ту часть, которая вам нужна. (Это может быть сделано с помощью
MID()
или других манипуляций со строками.)
Осторожно: в значение будет добавлен «час», связанный с любым часовым поясом.
Возможно, это то, что вы хотели:
FLOOR(1547654400000/(1000*3600))%24
, с другой стороны, дает 16
, «час», который находится в значении.
Подумайте об этом следующим образом: разделите на части ниже «часа» (миллисекунды и секунды в час), а затем по модулю количество часов в день (24).