2013-05-15 49 views
-1

我使用mysql的week()函數來確定從日期開始的週數。問題是我面對的是它總是從實際的週數中返回少一個數字。假設今天是2013-05-15,因爲它是今年的第20周,但結果是19.以下是我正在使用的查詢。mysql week()函數返回少於一個實際的週數

SELECT *,WEEK(date_visit) AS week_no FROM property_view_details; 
+0

那麼你的問題是什麼?給結果添加1似乎並不困難:) –

+0

不,我不想在結果中添加一個:)我只想得到20不是19 – Farhan

+0

[閱讀文檔並修復您的錯誤](http:// dev .mysql.com/DOC/refman/5.5/EN /日期和時間functions.html#function_week)。 – Jocelyn

回答

10

直起:

mysql> SELECT WEEK('2008-02-20',1); 
    -> 8 

您可以通過第二個參數設置爲改變WEEK行爲或分別針對0索引或1索引結果的01

+0

感謝它的工作 – Farhan

+2

參數'1'將使它保持零索引,但將星期計數更改爲ISO標準,即星期一開始的星期,第一週是新年裏超過三天的星期。 '2'相當於默認模式,只改變了零索引。 –

6

將第二個參數week設置爲正確的值。

引用文檔: https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_week

M F.day Range Week 1 is the first week … 
0 Sunday 0-53 with a Sunday in this year 
1 Monday 0-53 with more than 3 days this year 
2 Sunday 1-53 with a Sunday in this year 
3 Monday 1-53 with more than 3 days this year 
4 Sunday 0-53 with more than 3 days this year 
5 Monday 0-53 with a Monday in this year 
6 Sunday 1-53 with more than 3 days this year 
7 Monday 1-53 with a Monday in this year 

M = Mode 
F.day = First day of week 

樣品:

mysql> SELECT WEEK('2008-02-20',0); 
     -> 7 
mysql> SELECT WEEK('2008-02-20',1); 
     -> 8 
1

manual應該說明這一點。

default_week_format可能設置爲默認0,這意味着該周從零開始計數。嘗試將其更改爲1,或者只是調整查詢以解釋更改。

相關問題