2012-09-13 90 views
2

這裏是我的查詢:DATE(時間戳)返回錯誤月

$chart_result = mysql_query("SELECT * 
          FROM (SELECT DATE(timestamp) AS ts, 
              YEAR(timestamp) AS year, 
              MONTH(timestamp) AS month, 
              DAY(timestamp) AS day, 
              SUM(paymentgross) AS sales 
            FROM stats_ans_1 
            GROUP BY DATE(timestamp) DESC 
            LIMIT 10 
           ) AS TBL 
          GROUP BY ts"); 

,這裏是時間戳:

2012-09-12 19:45:23 

MONTH(時間戳)是絕對確定的時間戳十月並不九月 - 這顯然是錯誤的。憐憫我可憐的腦細胞!

+2

問題是什麼? –

+0

[Works fine](http://sqlfiddle.com/#!2/51e74/1) – hjpotter92

+0

如何讓它返回正確的月份 –

回答

2

可以使用DATE_FORMAT功能以字符串格式返回月份:

SELECT DATE_FORMAT('2012-09-12 19:45:23', '%M') AS `month`; 

而且你不需要使用GROUP BY兩次,嘗試此查詢:

SELECT DATE(timestamp) AS ts, 
     YEAR(timestamp) AS year, 
     MONTH(timestamp) AS month, 
     DAY(timestamp) AS day, 
     SUM(paymentgross) AS sales 
FROM stats_ans_1 
GROUP BY DATE(timestamp) DESC 
LIMIT 10;