我试图获得YEARWEEK函数来查看周日作为一周中的第一天。如何获得YEARWEEK()将周日视为本周的开始?
一个例子日期是:星期天2009年3月1日
这里是我的SQL
SELECT YEARWEEK('2009-03-01')
,其结果是
- > 200909
哪个9.我相信周它告诉我这是第9周,因为它认为星期日是前一周的最后一天。
我该如何获得这个函数来查看星期日作为一周的第一天,因此返回为第10周?
我试图获得YEARWEEK函数来查看周日作为一周中的第一天。如何获得YEARWEEK()将周日视为本周的开始?
一个例子日期是:星期天2009年3月1日
这里是我的SQL
SELECT YEARWEEK('2009-03-01')
,其结果是
- > 200909
哪个9.我相信周它告诉我这是第9周,因为它认为星期日是前一周的最后一天。
我该如何获得这个函数来查看星期日作为一周的第一天,因此返回为第10周?
这将做到这一点:
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 ...)
根据http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_yearweek,YEARWEEK
有一个可选的第二个参数来控制这个。 YEARWEEK('2009-03-01', 0)
应该做你想做的事情(但是请参阅页面WEEK
下的可能值表)。
'SELECT DATE_FORMAT('2009-03-01','%Y%U')'也返回'200909' - 我认为您对200910的看法是错误的:http://dev.mysql.com/ DOC/refman/5.1/EN /日期和时间functions.html#function_date格式 – 2010-06-09 16:31:55