一尘不染

在MySQL中每月的一周的功能

mysql

我正在寻找一个简单的函数来在mysql查询中获取每月的星期(而不是一年中的容易的星期)。

我能想到的最好的是:

WEEK(dateField) - WEEK(DATE_SUB(dateField, INTERVAL DAYOFMONTH(dateField)-1 DAY)) + 1

我想知道我是否在这里重新发明轮子,以及是否有更简便,更清洁的解决方案?


阅读 298

收藏
2020-05-17

共1个答案

一尘不染

AFAIK,该月的第一周没有标准。

一年的第一周是包含的周Jan 4th

您如何定义每月的第一周?

更新:

您需要像这样重写查询:

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

以便正确处理年份转换,并从星期开始Monday

否则,您的查询就可以了。

2020-05-17