我正在使用此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年获取日期。
答案 0 :(得分:1)
SELECT SUM(bytes),DATE_FORMAT(FROM_UNIXTIME(timestamp_end), '%e %b %Y') AS timekey
FROM acct_v9 GROUP BY DATE_FORMAT(FROM_UNIXTIME(timestamp_end), '%e %b %Y')
答案 1 :(得分:1)
划分和舍入时间戳时,您无法获得有效的时间戳。你必须将它重新乘以(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
的 sqlFiddle demo 强>
显然,您可以使用所需格式更改%Y-%m-%d %H:%i:%s
。