2

これが私のクエリです:

$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(timestamp) は、タイムスタンプが 9 月ではなく 10 月であると絶対的に判断されます。これは明らかに間違っています。私の貧弱な脳細胞を憐れんでください!

4

1 に答える 1

2

DATE_FORMAT関数を使用して、月を文字列形式で返すことができます。

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

また、2 回使用する必要はありません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;
于 2012-09-13T13:06:27.707 に答える