Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用SUM时的MySQL分组日期时间_Php_Mysql_Datetime - Fatal编程技术网

Php 使用SUM时的MySQL分组日期时间

Php 使用SUM时的MySQL分组日期时间,php,mysql,datetime,Php,Mysql,Datetime,我使用这个MySQL查询在15分钟的分组中添加流量记录 SELECT SUM(bytes), ROUND(UNIX_TIMESTAMP(timestamp_end)/(15 * 60)) AS timekey FROM acct_v9 GROUP BY timekey 我的“timestamp\u end”列存储为datetime,但是,当我尝试使用FROM\u UNIXTIME将此查询转换回datetime时,我一直在获取1970年的日期。如果对时间戳进行除法取整

我使用这个MySQL查询在15分钟的分组中添加流量记录

    SELECT SUM(bytes), ROUND(UNIX_TIMESTAMP(timestamp_end)/(15 * 60)) AS timekey 
      FROM acct_v9 
  GROUP BY timekey

我的“timestamp\u end”列存储为datetime,但是,当我尝试使用
FROM\u UNIXTIME
将此查询转换回datetime时,我一直在获取1970年的日期。

如果对时间戳进行除法取整,则无法获得有效的时间戳。您必须将其乘以(15*60):

 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')
通过此查询,您将获得有效的时间戳

要直接获取格式化日期,可以使用以下查询:

   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

FROM\u UNIXTIME不是用于将时间戳转换为日期的吗?我的“timestamp_end”列被插入到已经使用FROM_UNIXTIME的数据库中。然后,ROUND函数将其转换回时间戳进行计算。我正试图把它恢复到插入数据库的数字日期格式。谢谢,这得到了我想要的结果。我还在想是否需要额外的乘法步骤?
   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