Amarok
Новичок
Отбор по времени
Здравствуйте
Имеется таблица
time_sec - int(10)
length - smallint(5)
Например:
1160582404 | 10
1160582411 | 15
1160582413 | 8
Соответственно time_sec - дата TIMESTAMP
Нужно просуммировать значение столбца length в период, например, с 00:00 часов до 08:00 и с 08:00 до 23:59 соответственно.
select
SUM(CASE WHEN (DATE_FORMAT(FROM_UNIXTIME(time_sec), '%H:%i:%s') BETWEEN '00:00:00' AND '08:00:00') THEN length ELSE 0 END) as night,
SUM(CASE WHEN (DATE_FORMAT(FROM_UNIXTIME(time_sec), '%H:%i:%s') NOT BETWEEN '00:00:00' AND '08:00:00') THEN length ELSE 0 END) as day
from test
Кажется мне что это не лучший вариант. Можно ли это сделать как-то иначе?
Заранее спасибо.
Здравствуйте
Имеется таблица
time_sec - int(10)
length - smallint(5)
Например:
1160582404 | 10
1160582411 | 15
1160582413 | 8
Соответственно time_sec - дата TIMESTAMP
Нужно просуммировать значение столбца length в период, например, с 00:00 часов до 08:00 и с 08:00 до 23:59 соответственно.
select
SUM(CASE WHEN (DATE_FORMAT(FROM_UNIXTIME(time_sec), '%H:%i:%s') BETWEEN '00:00:00' AND '08:00:00') THEN length ELSE 0 END) as night,
SUM(CASE WHEN (DATE_FORMAT(FROM_UNIXTIME(time_sec), '%H:%i:%s') NOT BETWEEN '00:00:00' AND '08:00:00') THEN length ELSE 0 END) as day
from test
Кажется мне что это не лучший вариант. Можно ли это сделать как-то иначе?
Заранее спасибо.