【问题标题】:Sum values in a specific hour of the day - Mysql PHP [closed]对一天中特定时间的值求和 - Mysql PHP [关闭]
【发布时间】:2015-01-20 21:16:25
【问题描述】:

如何将一天中特定小时的值相加,例如我

 id -- name -- value -- date
 1    Example1   31     12-02-2014 12:03:00
 2    Example2   56     13-02-2014 07:40:00
 3    Example3   5      12-02-2014 12:43:00
 4    Example4   31     12-02-2014 11:06:00

想以 2014 年 12 月 2 日当天的值为例 在这个 12 点

我感兴趣的价值观是 示例 1 示例 3 总和:31 + 5= 36

【问题讨论】:

  • SUM() 与 WHERE 子句一起使用。确保您的列是ints。
  • 是的..但是我如何把小时作为条件
  • WHERE date = '12-02-2014 12:03:00'
  • 我需要将指定小时的所有值加起来,不管分钟数
  • 您的问题似乎与jquery无关。最好去掉那个标签

标签: php jquery mysql date datetime


【解决方案1】:
SELECT SUM(value) AS total
FROM table
WHERE DATE(date) = '2014-02-12'
AND HOUR(date) = 12

注意:使用的日期格式取决于您的语言环境,我只是将其用作“2014-02-12”,因为它适用于 2014 年 1 月 12 日。

【讨论】:

    【解决方案2】:

    您可以使用 SUM() 作为值并在 WHERE 子句 BETWEEN() 中使用日期

    SELECT SUM(value) FROM table WHERE date BETWEEN '12-02-2014 12:00:00' AND '12-02-2014 12:59:59'

    如果您想获得所有小时的结果,这是 GROUP BY 子句的经典案例:

    SELECT SUM(value), DATE_FORMAT(date, "%d-%m-%Y %H:00:00") AS hour FROM table GROUP BY hour

    【讨论】:

    • 这假定 date 列是 DATETIME 或 TIMESTAMP。这在 OP 问题中没有指定,并且问题中值的格式使它看起来实际上可能存储为字符数据类型。
    • @spencer7593 你是对的,我是这么认为的。我们只需要来自 OP 的更多信息。但如果他使用其他数据类型,也许这会让他考虑使用 DATETIME。
    【解决方案3】:

    您应该创建MYSQL 事件,它需要数据库模式中的事件权限,有时它可能需要超级权限,但这是您定义事件的方式

    您应该使用此语句在MYSQL 客户端中打开事件调度程序

    SET GLOBAL event_scheduler = ON;
    

    然后执行这段代码

    CREATE EVENT sum
        ON SCHEDULE AT '12-02-2014 12:00:00'
        DO
         UPDATE db.thistable SET val1=SUM(val1,val2);
    

    我认为这是你需要的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-08
      相关资源
      最近更新 更多