在MySQL中,如何返回本月的一周?

时间:2012-08-20 23:46:25

标签: mysql

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

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

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

6 个答案:

答案 0 :(得分:10)

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

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

答案 1 :(得分:8)

FLOOR((DayOfMonth(dateCol)-1)/7)+1

我想明确指出,这可能不是分割数据的好方法 - (请参阅评论),但这样可以让您尽可能接近。

答案 2 :(得分: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;

答案 3 :(得分:0)

SELECT WEEK(my_date_field,5) - WEEK(DATE_SUB(my_date_field, 
INTERVAL DAYOFMONTH(my_date_field) - 1 DAY),5) + 1

或者您可以看到here

答案 4 :(得分:0)

TO_CHAR(my_date, 'W') 

返回特定月份的确切星期数。

答案 5 :(得分:0)

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