Как-то так
...
WHERE 
 DATE(date) = CURDATE()
GROUP BY
  EXTRACT(HOUR FROM date)
ORDER BY
 EXTRACT(HOUR FROM date)
Но 24 записи будут не ранее 12 часа ночи.  
Нужно уточнить. Что значить "выбрать temp, hum и date"? Их сумму, максимальное/минимально или что? В часе их около 12 штук, а записей всего предполагается ведь не более 24.