最近在做订单统计,经过查询后发现数据库本身有定义很多时间方面的函数,这里把用到的统计每天,每月,每小时的数据的方法做个总结:
分月查询数据:
SELECT
MONTH ( 那个日期的字段 ),
SUM( 需要统计的字段, 比如销售额什么的 )
FROM
表
WHERE
YEAR ( 那个日期的字段 ) = 2010 -- 这里假设你要查 2010年的每月的统计。这里可以加上其他条件。
GROUP BY
MONTH ( 那个日期的字段 )
分天查询数据:
SELECT
DAY ( 那个日期的字段 ),
SUM( 需要统计的字段, 比如销售额什么的 )
FROM
表
WHERE
( 那个日期的字段 ) BETWEEN ? AND ? -- 这里插入你要查询的时间段,也可以加上其他条件。
GROUP BY
DAY ( 那个日期的字段 )
分小时查询
SELECT
HOUR ( 那个日期的字段 ),
SUM( 需要统计的字段, 比如销售额什么的 )
FROM
表
WHERE
( 那个日期的字段 ) BETWEEN ? AND ? -- 这里插入你要查询的当天时间,也可以加上其他条件。
GROUP BY
HOUR ( 那个日期的字段 )
举例说明:
我这里要查的是成交的订单数据,表名为od_base,用的时间段是订单提交时间,字段为ORDER_COMMITTIME,要统计的是订单总金额,字段为RECEIVABLE;
这里查询每一天的数据的sql如下:
SELECT
DAY ( o.ORDER_COMMITTIME ),
SUM( o.RECEIVABLE )
FROM
od_base o
WHERE
o.ORDER_COMMITTIME BETWEEN '2018-02-06 10:27:34' AND '2018-03-06 10:27:34'
GROUP BY
DAY ( o.ORDER_COMMITTIME )
这样就查询到了2018-02-06到2018-03-06之间的所有数据,然后可以根据需求不同,在where后面加上不同的条件。