我正在使用此 MySQL 查询以 15 分钟的分组添加交通记录。
SELECT SUM(bytes), ROUND(UNIX_TIMESTAMP(timestamp_end)/(15 * 60)) AS timekey
FROM acct_v9
GROUP BY timekey
我的“timestamp_end”列存储为日期时间,但是当我尝试使用 FROM_UNIXTIME
将此查询转换回日期时间时,我一直在获取 1970 年的日期。
最佳答案
当您对时间戳进行除法和舍入时,您不会获得有效的时间戳。您必须将它重新乘以 (15*60):
SELECT COUNT(*),
SUM(bytes),
ROUND(UNIX_TIMESTAMP(timestamp_end)/(15 * 60))*(15*60) AS timekey
FROM acct_v9
GROUP BY timekey
通过此查询,您将获得有效的时间戳。
要直接获取格式化日期,您可以使用此查询:
SELECT COUNT(*),
SUM(bytes),
FROM_UNIXTIME
(
ROUND(UNIX_TIMESTAMP(timestamp_end)/(15 * 60))*(15*60)
,'%Y-%m-%d %H:%i:%s'
) AS timekey
FROM acct_v9
GROUP BY timekey
显然,您可以将 %Y-%m-%d %H:%i:%s
更改为您想要的格式。
关于php - 使用 SUM 时的 MySQL 分组日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35998364/