我正在寻找一个简单的函数来在mysql查询中获取每月的星期(而不是一年中的容易的星期)。
我能想到的最好的是:
WEEK(dateField) - WEEK(DATE_SUB(dateField, INTERVAL DAYOFMONTH(dateField)-1 DAY)) + 1
我想知道我是否在这里重新发明轮子,以及是否有更简便,更清洁的解决方案?
AFAIK,该月的第一周没有标准。
一年的第一周是包含的周Jan 4th。
Jan 4th
您如何定义每月的第一周?
更新:
您需要像这样重写查询:
SELECT WEEK(dateField, 5) - WEEK(DATE_SUB(dateField, INTERVAL DAYOFMONTH(dateField) - 1 DAY), 5) + 1
以便正确处理年份转换,并从星期开始Monday。
Monday
否则,您的查询就可以了。