最近在做訂單統計,經過查詢后發現數據庫本身有定義很多時間方面的函數,這里把用到的統計每天,每月,每小時的數據的方法做個總結:
分月查詢數據:
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后面加上不同的條件。