php - DATE(时间戳)返回错误的月份

标签 php mysql timestamp

这是我的查询:

$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) 绝对确定时间戳是 10 月而不是 9 月 - 这显然是错误的。怜悯我可怜的脑细胞!

最佳答案

您可以使用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;

关于php - DATE(时间戳)返回错误的月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12406840/

相关文章:

php - 当我在 PHP 中使用 cURL 发布文件时,我应该设置 CURLOPT_UPLOAD 吗?

php - MySQL查询,我该如何查询呢?

javascript - 我可以检测网页是否已被谷歌翻译吗?

java - 如何按修改时间顺序读取目录文件

Java用时间戳计算时间

php - JavaScript 正则表达式替换 HTML anchor

MySql workbench CHECK 约束

php - 如何在opencart中检查属于特定产品的属性

mysql - MySQL 中允许空值的唯一约束

sql - 使用 BY TIMESTAMP 进行滚动窗口的 Azure 流分析查询在测试中工作正常,但在运行作业结果中关闭