我試圖獲得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