【问题标题】:How to split records per hour in order to display them as a chart?如何每小时拆分记录以将它们显示为图表?
【发布时间】:2014-09-16 20:59:31
【问题描述】:

我有一个这样的 SQL 表:sales(product,timestamp) 我想使用 Open Flash Chart 显示图表,但我不知道如何获得过去 12 小时内每小时的总销售额。 (时间戳列是销售日期)

例如,我最终会得到一个这样的数组:array(12,5,8,6,10,35,7,23,4,5,2,16) 每个数字都是每小时的总销售额。

注意:我想使用 php 或只使用 mysql。

谢谢

【问题讨论】:

    标签: php mysql charts


    【解决方案1】:
    SELECT HOUR(timestamp),COUNT(*)
    FROM sales
    WHERE timestamp >= DATE_SUB(NOW(),INTERVAL 12 HOUR)
    GROUP BY HOUR(timestamp)
    

    【讨论】:

    • 时间戳 >= DATE_SUB(NOW(),INTERVAL 12 HOUR) 部分不起作用 :( 可能是因为它是 Unix 时间戳?
    【解决方案2】:

    SQL 是

    SELECT HOUR(timestamp), COUNT(product)
    FROM sales
    ORDER BY HOUR(timestamp)
    

    遍历结果以将其放入数组中。

    编辑:为 unix 时间戳应用请求的 where 条件

    SELECT HOUR(timestamp), COUNT(product)
    FROM sales
    WHERE timestamp >= UNIX_TIMESTAMP(DATE_SUB(NOW(),INTERVAL 12 HOUR))
    ORDER BY HOUR(timestamp)
    

    【讨论】:

    【解决方案3】:

    一些伪代码:

    foreach timestamp
      use date('G',timestamp) to get hour
      increment array value using the hour as key
    

    类似的东西。注意时区。

    【讨论】:

      猜你喜欢
      • 2014-09-24
      • 1970-01-01
      • 1970-01-01
      • 2020-07-14
      • 2012-01-23
      • 2013-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多