今天碰到一個問題,說在 mysql 裏面, 要按周統計, 周的計算,是從 每週一到週日。mysql
簡單了寫了下sql
SELECT
WEEK ( date )
SUM ( sale )
FROM
表
GROUP BY
WEEK( date );
函數
發現 默認狀況下, 這個 WEEK ( 日期 ) 是 每把週日,做爲一週的開始。date
去查詢了一下手冊,看到這個 WEEK 函數, 還能夠額外再跟一個 參數。統計
這個參數決定了, 使用星期幾,來做爲 一週的開始。查詢
以及用什麼樣的邏輯,來計算 一年裏面, 第一週的計算方式。手冊
這個參數的描述以下:參數
參數值日期
每週第一天
是星期幾
返回值
範圍
第一週是怎麼計算的?
0
星期天
0-53
遇到本年的第一個星期天開始,是第一週。
前面的計算爲第0周。
1
星期一
0-53
假如第一週能超過3天,那麼計算爲本年的第一週。不然爲第0周
能夠理解爲
若是1月1號~4號是星期一,那麼本年第一週開始。(以前的是第零周)
若是1月5號之後是星期一,那麼如今開始,是本年的第二週了,以前的是第一週。
2
星期天
1-53
遇到本年的第一個星期天開始,是第一週。
前面的計算爲上年度的第5x周。
3
星期一
1-53
假如第一週能超過3天,那麼計算爲本年的第一週。不然爲上年度的第5x周。
能夠理解爲
若是1月1號~4號是星期一,那麼本年第一週開始。(以前的是第5x周)
若是1月5號之後是星期一,那麼如今開始,是本年的第二週了,以前的是第一週。
4
星期天
0-53
假如第一週能超過3天,那麼計算爲本年的第一週。不然爲第0周
能夠理解爲
若是1月1號~4號是星期天,那麼本年第一週開始。(以前的是第零周)
若是1月5號之後是星期天,那麼如今開始,是本年的第二週了,以前的是第一週。
5
星期一
0-53
遇到本年的第一個星期一開始,是第一週。
前面的計算爲第0周。
6
星期天
1-53
假如第一週能超過3天,那麼計算爲本年的第一週。不然爲上年度的第5x周。
能夠理解爲
若是1月1號~4號是星期天,那麼本年第一週開始。(以前的是第5x周)
若是1月5號之後是星期天,那麼如今開始,是本年的第二週了,以前的是第一週。
7
星期一
1-53
遇到本年的第一個星期一開始,是第一週。
前面的計算爲上年度的第5x周。