LEFT JOIN DATE_FORMAT , , , . , @amdixon, .
, , . , 30M (30 , 1M ).
, date_hour (, ) hour. , :
WHERE
date_hour.hour >= '2015-05-01 00:00:00'
AND date_hour.hour < '2015-05-02 00:00:00'
, - 1M , , 1M . . 1M , 30M , , , 1M , .
, ( - ).
, log_date , , my_data.
1
my_data. log_date. WHERE. , , , my_data. log_date, . , MySQL , datetime DATE_FORMAT, date_hour.hour , ( , date_hour.hour). , . datetime .
TIMESTAMPADD(HOUR,
TIMESTAMPDIFF(HOUR,'2015-01-01 00:00:00',DateTimeValue),
'2015-01-01 00:00:00')
"2015-01-01", . datetime - , , , , .
SELECT
date_hour.hour,
COUNT(my_data.log_date) AS count
FROM
date_hour
LEFT JOIN my_data ON
date_hour.hour = TIMESTAMPADD(HOUR, TIMESTAMPDIFF(HOUR,'2015-01-01 00:00:00',my_data.log_date), '2015-01-01 00:00:00')
WHERE
date_hour.hour >= '2015-05-01 00:00:00' AND
date_hour.hour < '2015-05-02 00:00:00' AND
my_data.log_date >= '2015-05-01 00:00:00' AND
my_data.log_date < '2015-05-02 00:00:00'
GROUP BY
date_hour.hour
ORDER BY
date_hour.hour
;
date_hour my_data, , 1M , . , 1M , . , ( 1 , , ).
2
datetime " ", log_hour my_data, log_date log_date . . log_hour, . log_date, log_hour:
SELECT
date_hour.hour,
COUNT(my_data.log_hour) AS count
FROM
date_hour
LEFT JOIN my_data ON date_hour.hour = my_data.log_hour
WHERE
date_hour.hour >= '2015-05-01 00:00:00' AND
date_hour.hour < '2015-05-02 00:00:00' AND
my_data.log_hour >= '2015-05-01 00:00:00' AND
my_data.log_hour < '2015-05-02 00:00:00'
GROUP BY
date_hour.hour
ORDER BY
date_hour.hour
;