MySQL перекрестный запрос между датой и временем
У меня есть поля с именем hourDate(Datetime), appUsed(показания), energyUsage(показания) в моей таблице под названием hourlyMetrics_CubicalPrime, и я использую перекрестный запрос, как показано ниже:
SELECT hourDate,
sum(IF (Time(hourDate) between '22:59:00' and '23:01:59', appUsed, 0)) as AppUsed_11PM,
sum(IF (Time(hourDate) between '23:59:00' and '23:59:59', appUsed, 0)) as AppUsed_12AM,
sum(IF (Time(hourDate) between '22:59:00' and '23:01:59', energyUsage, 0)) as EnergyUsed_11PM,
sum(IF (Time(hourDate) between '23:59:00' and '23:59:59', energyUsage, 0)) as EnergyUsed_12AM
FROM cubical_database.hourlyMetrics_CubicalPrime
where Date(hourDate) between '2016-01-01' and '2016-01-10'
group by Date(hourDate)
Над запросом приведите ниже данные:
hourDate AppUsed_11PM AppUsed_12PM EnergyUsed_11PM EnergyUsed_11PM
2016-01-01 01:00:00 5 23 108.283057 2631.7824980000005
2016-01-02 01:00:00 1 14 95.149445 2616.103333
2016-01-03 01:00:00 3 24 168.27166600000004 7898.585555000001
2016-01-04 01:00:00 0 16 700.304167 4599.651944
2016-01-05 01:00:00 0 7 245.32194499999997 2301.689999
2016-01-06 01:00:00 3 14 418.844444 2546.4463889999997
2016-01-07 01:00:00 1 21 739.558055 2838.094999
2016-01-08 01:00:00 35 0 78.631667 69.030277
2016-01-09 01:00:00 1 0 57.676111 56.836389
2016-01-10 01:00:00 0 0 75.67583400000001 74.208054
Я хочу сумму чтений appUsed, energyUsage за период времени, указанный в запросах, но не получая точные значения чтения.
Кто-нибудь, пожалуйста, предложите мне правильный запрос.
Это основной запрос, который показывает фактические данные в таблице:
SELECT hourDate, appUsed, energyUsage FROM cubical_database.hourlyMetrics_CubicalPrime where ((Date(hourDate) between '2016-01-01' and '2016-01-10') and (TIME(hourDate) between '22:00:00' and '23:59:59')) group by hourDate order by hourDate ASC
и это дает вывод
hourDate appUsed energyUsed
2016-01-01 22:00:00 0 0
2016-01-01 23:00:00 0 0
2016-01-01 23:59:00 0 0
2016-01-02 22:00:00 0 0
2016-01-02 23:00:00 0 0
2016-01-02 23:59:00 0 1.928056
2016-01-03 22:00:00 0 0
2016-01-03 23:00:00 0 0
2016-01-03 23:59:00 0 5050.89
2016-01-04 22:00:00 0 0
2016-01-04 23:00:00 0 0
2016-01-04 23:59:00 0 0
2016-01-05 22:00:00 0 0
2016-01-05 23:00:00 0 0
2016-01-05 23:59:00 0 0
2016-01-06 22:00:00 0 0
2016-01-06 23:00:00 0 0
2016-01-06 23:59:00 0 0
2016-01-07 22:00:00 0 0
2016-01-07 23:00:00 0 0
2016-01-07 23:59:00 0 0
2016-01-08 22:00:00 0 0
2016-01-08 23:00:00 0 0
2016-01-08 23:59:00 0 0
2016-01-09 22:00:00 0 0
2016-01-09 23:00:00 0 0
2016-01-09 23:59:00 0 0
2016-01-10 22:00:00 0 0
2016-01-10 23:00:00 0 0
2016-01-10 23:59:00 0 0
Эти данные показывают, что перекрестный запрос дает неверные результаты.