MySQL WEEK函數介紹

原文鏈接:https://www.yiibai.com/mysql/week.html

 

MySQL WEEK函數介紹

 

通常,一年的正常年份爲365天,閏年爲366天。一年又可以分爲許多周,每週有7天。 所以一年,我們經常有365/7 = 52周,周範圍是從152

要查看給定日期屬於哪個週數,您可以使用WEEK函數,如下所示:

WEEK(date, mode);

WEEK函數接受兩個參數:

  • date是要獲取週數的日期。
  • mode是一個可選參數,用於確定週數計算的邏輯。它允許您指定本週是從星期一還是星期日開始,返回的週數應在052之間或053之間。

如果忽略mode參數,默認情況下WEEK函數將使用default_week_format系統變量的值。

要獲取default_week_format變量的當前值,請使用SHOW VARIABLES語句如下:

mysql> SHOW VARIABLES LIKE 'default_week_format';
+---------------------+-------+
| Variable_name       | Value |
+---------------------+-------+
| default_week_format | 0     |
+---------------------+-------+
1 row in set

在我們的服務器中,default_week_format的默認值爲0,下表格說明了mode參數如何影響WEEK函數:

模式 一週的第一天 範圍
0 星期日 0-53
1 星期一 0-53
2 星期日 1-53
3 星期一 1-53
4 星期日 0-53
5 星期一 0-53
6 星期日 1-53
7 星期一 1-53

上表中“今年有4天以上”表示:

  • 如果星期包含1月1日,並且在新的一年中有4天或更多天,那麼這周是第1周。
  • 否則,這一週的數字是前一年的最後一週,下週是第1周。

WEEK函數返回一個週數,遵循ISO 8601:1988

MySQL WEEK功能示例

請參閱示例數據庫(yiibai)中的orders表,如下所示 -

以下聲明使用WEEK函數返回2013年每週的訂單數量:

use yiibaidb;SELECT 
    WEEK(orderDate) week_no, 
    COUNT(*)
FROM
    orders
WHERE
    YEAR(orderDate) = 2013
GROUP BY WEEK(orderDate);
Database changed

執行上面查詢語句,得到以下結果 -

+---------+----------+
| week_no | COUNT(*) |
+---------+----------+
|       1 |        3 |
|       4 |        2 |
|       6 |        1 |
|       7 |        1 |
|       8 |        1 |
|       9 |        1 |
|      10 |        1 |
|      11 |        1 |
|      12 |        3 |
|      13 |        2 |
|      14 |        1 |
|      15 |        1 |
|      16 |        1 |
|      17 |        2 |
|      18 |        2 |
|      20 |        3 |
|      21 |        1 |
|      22 |        2 |
|      23 |        1 |
|      24 |        2 |
|      25 |        2 |
|      26 |        3 |
|      27 |        2 |
|      28 |        1 |
|      29 |        1 |
|      30 |        1 |
|      31 |        2 |
|      32 |        1 |
|      34 |        1 |
|      35 |        2 |
|      36 |        2 |
|      37 |        2 |
|      38 |        2 |
|      39 |        3 |
|      40 |        7 |
|      41 |        2 |
|      42 |        5 |
|      43 |        1 |
|      44 |       10 |
|      45 |        9 |
|      46 |        6 |
|      47 |        5 |
|      48 |        8 |
|      49 |        1 |
+---------+----------+
44 rows in set

在本教程中,您已經學會了如何使用MySQL WEEK函數從指定的日期獲取週數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章