2013-01-09 64 views
1

例如MySQL NOW()返回2013-01-09 12:20:06,所以我需要按照下面的指定計算所有行。如何統計當前和過去的日期?

電流:

  • 小時:從2013年1月9日12:00:00至NOW()
  • 日:從2013年1月8日00:00:00至NOW()
  • 月:從2013-01-01 00:00:00至NOW()

上一頁

  • 小時:2013年1月9日11:00:00 - 2013年1月9日12:00:00
  • 日:2013年1月8日00:00:00 - 2013年1月8日23:59:59
  • 月:2012年12月1日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 
) 

但可能有更方便的方法嗎?

回答

0

試試這個:

對於CURRENT:

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

相關問題