例如 MySQL NOW()
返回 2013-01-09 12:20:06
,所以我需要按照下面指定的方式计算所有行数。
电流:
- 时间:从 2013-01-09 12:00:00 到
NOW()
- 日期:从 2013-01-08 00:00:00 到
NOW()
- 月份:从 2013-01-01 00:00:00 到
NOW()
上一个
- 时间:2013-01-09 11:00:00 - 2013-01-09 12:00:00
- 日期:2013-01-08 00:00:00 - 2013-01-08 23:59:59
- 月份:2012-12-01 00:00:00 - 2013-01-01 00:00:00
我试过类似的方法:
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
)
但是有没有更方便的方法呢?
最佳答案
试试这个:
当前:
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:00:00');
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d 00:00:00');
SELECT DATE_FORMAT(NOW(), '%Y-%m-01 00:00:00');
对于上一个:
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:00:00'), DATE_SUB(DATE_FORMAT(NOW(), '%Y-%m-%d %H:00:00'), INTERVAL 1 HOUR);
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d 00:00:00'), DATE_SUB(DATE_FORMAT(NOW(), '%Y-%m-%d 00:00:00'), INTERVAL 1 DAY);
SELECT DATE_FORMAT(NOW(), '%Y-%m-01 00:00:00'), DATE_SUB(DATE_FORMAT(NOW(), '%Y-%m-01 00:00:00'), INTERVAL 1 MONTH);
检查此链接 SQL FIDDLE DEMO
关于mysql - 如何计算当前和以前的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14233174/