如何获得YEARWEEK()将周日视为本周的开始?

时间:2010-06-09 10:13:17

标签: mysql

我正试图通过YEARWEEK功能将星期日视为一周的第一天。

示例日期是:2009年3月1日星期日

这是我的sql

SELECT YEARWEEK('2009-03-01')

,结果是

- > 200909

这是第9周。我相信它告诉我这是第9周,因为它将星期日视为前一周的最后一天。

如何将星期日视为一周的第一天,并将其作为第10周返回?

2 个答案:

答案 0 :(得分:5)

根据http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_yearweekYEARWEEK有一个可选的第二个参数来控制它。 YEARWEEK('2009-03-01', 0)应该按照您的要求执行(但请参阅该页面上WEEK下的可能值表)。

答案 1 :(得分:0)

这样做:

SELECT YEARWEEK('2009-03-01')+IF(WEEKDAY('2009-03-01')=6,1,0);

编辑:这是更好的解决方案,有关详细信息,请点击here

SELECT YEARWEEK('2009-03-01',0);

(但我不知道你为什么要这样做 - 2009.03.01 在第9周,而不是10 ...)