在Mysql中获取给定数据范围内特定月份的周数

在Mysql中获取给定数据范围内特定月份的周数,mysql,Mysql,我想根据给定日期显示每周用户记录, 假设我给出了日期范围'2014-01-24', 这个日期是哪一周 示例:第1周、第2周、第3周、第4周、 我使用的查询方式是 select weekday(date); 使用WEEK(date[,mode])MySQL提供。有了每月的第几天后,使用除法运算符找出您所在的星期 SELECT WEEK('2014-01-24'); +--------------------+ | WEEK('2014-01-24') | +-------------------

我想根据给定日期显示每周用户记录, 假设我给出了日期范围
'2014-01-24'
, 这个日期是哪一周

示例:第1周、第2周、第3周、第4周、

我使用的查询方式是

select weekday(date);

使用
WEEK(date[,mode])
MySQL提供
。有了每月的第几天后,使用除法运算符找出您所在的星期

SELECT WEEK('2014-01-24');
+--------------------+
| WEEK('2014-01-24') |
+--------------------+
|                  3 |
+--------------------+
1 row in set (0.00 sec)
例如:

SELECT DAYOFMONTH('2007-02-22');
将返回22

22 / 7 = 3, so you are in week 3.
编辑:此答案基于查找给定月份的周数。其他答案显示“周”函数,该函数将给出给定年份的周数。

此函数返回日期的周数

 SELECT WEEK('2014-01-24') as numberofweeks;

此函数用于返回日期的周数。WEEK()的两个参数形式允许您指定一周是从星期日还是星期一开始,以及返回值应在0到53或1到53之间

mysql> SELECT WEEK('2014-01-24');
-> 3

i、 e第3周

我做了一些东西,也许这可以帮助你,但周数根据周开始的不同而不同,例如:在巴西,这周从周日开始。看看这是否能解决你的问题

SET @date:='2014-08-31';
SELECT 
    @first := date_add(
        date_add(
            LAST_DAY(@date),
            interval 1 DAY
        ),
        interval -1 MONTH
    ) AS first_day,
    @date,
    -- EXAMPLE 1
    WeekofYear(@date),
    WeekofYear(@first),
    WeekofYear(@date)-(WeekofYear(@first)-1) Num_Week,
    -- EXAPLE 2 - Works in Brazil perfectly
    Week(@date),
    Week(@first),
    Week(@date)-(Week(@first)-1) Num_Week_Brazil

'2014-01-24'
是一个日期,不是一个范围。对不起,你的问题是什么?