9

一年分为12个月。我们可以在四个星期内分解一个月。

在 MySQL 中,如何返回一个月的星期几?(例:第一周:2个条目,第二周:5个条目,第三周:3个条目;第四周:8个条目)

使用 Week 和 WeekOfYear 不会获得所需的结果,因为这些函数返回的是周数 YEAR,而不是月份。

4

6 回答 6

15

使用 MySQL 内置函数 week 查找一年的周数,然后减去该月第一天的周数。

SELECT WEEK('2012-02-20') - WEEK('2012-02-01')

文档中有很多选项可以自定义调用以完全适合您正在寻找的内容,但我希望我的示例能让您了解可用的内容。

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_week

于 2012-08-20T23:58:47.917 回答
13
FLOOR((DayOfMonth(dateCol)-1)/7)+1

我想明确表示,这可能不是划分数据的好方法 - (请参阅评论),但这会让你尽可能接近。

于 2012-08-20T23:51:33.373 回答
2

一个月中的一周(将开始的不完整周计为一个整体)

select ceiling((day(now()) - 
(6 - weekday(date_format(now(),'%Y-%m-01'))))/7) 
+ case when 6 - weekday(date_format(now(),'%Y-%m-01'))> 0 
then 1 else 0 end week_of_month;
于 2016-04-25T04:06:05.737 回答
0
SELECT WEEK(my_date_field,5) - WEEK(DATE_SUB(my_date_field, 
INTERVAL DAYOFMONTH(my_date_field) - 1 DAY),5) + 1

或者你可以在这里看到。

于 2019-01-21T09:19:37.627 回答
0
TO_CHAR(my_date, 'W') 

返回特定月份的确切周数。

于 2019-02-12T18:39:00.757 回答
0

SELECT (WEEK('2020-09-27') - WEEK(DATE_FORMAT('2020-09-27','%Y-%m-01')))+1

于 2020-09-03T08:49:55.693 回答