For example MySQL NOW() returns 2013-01-09 12:20:06, so i need to count all rows as specified below.
Current:
- Hour: from 2013-01-09 12:00:00 till
NOW() - Day: from 2013-01-08 00:00:00 till
NOW() - Month: from 2013-01-01 00:00:00 till
NOW()
Previous
- Hour: 2013-01-09 11:00:00 – 2013-01-09 12:00:00
- Day: 2013-01-08 00:00:00 – 2013-01-08 23:59:59
- Month: 2012-12-01 00:00:00 – 2013-01-01 00:00:00
I tried something like:
WHERE
`date` >= DATE_FORMAT(NOW(), '%Y-%m-%d %h:00:00')
AND `date` >= DATE_SUB(
DATE_FORMAT(NOW(), '%Y-%m-%d %h:00:00'),
INTERVAL 10 MONTH
)
But may be there is more convenient way?
Try this:
For CURRENT:
For PREVIOUS:
Check this link SQL FIDDLE DEMO