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

SQL

在我们的服务器中,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函数返回一个周数

MySQL WEEK功能示例

以下声明使用WEEK函数返回2013年每周的订单数量:

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

SQL

执行上面查询语句,得到以下结果 -

+---------+----------+
| 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


 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值