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

Эти данные показывают, что перекрестный запрос дает неверные результаты.

0 ответов

Другие вопросы по тегам