WEEK(#,0)
被更改為匹配 USA 歷法。 注意,如果一周是上一年的最后一周,當你沒有使用 2 或 3 做為可選參數時,MySQL 將返回 0:mysql> SELECT YEAR('2000-01-01'), WEEK('2000-01-01',0); -> 2000, 0 mysql> SELECT WEEK('2000-01-01',2); -> 52你可能會爭辯說,當給定的日期值實際上是 1999 年的第 52 周的一部分時,MySQL 對
WEEK()
函數應該返回52
。我們決定返回 0 ,是因為我們希望該函數返回“在指定年份中是第幾周”。當與其它的提取日期值中的月日值的函數結合使用時,這使得WEEK()
函數的用法可靠。 如果你更希望能得到恰當的年-周值,那么你應該使用參數 2 或 3 做為可選參數,或者使用函數YEARWEEK()
:mysql> SELECT YEARWEEK('2000-01-01'); -> 199952 mysql> SELECT MID(YEARWEEK('2000-01-01'),5,2); -> 52
YEAR(date)
date
的年份,范圍為1000
到9999
:mysql> SELECT YEAR('98-02-03'); -> 1998
YEARWEEK(date)
YEARWEEK(date,first)
WEEK()
的第二個參數一致。注意,對于給定的日期參數是一年的第一周或最后一周的,返回的年份值可能與日期參數給出的年份不一致:mysql> SELECT YEARWEEK('1987-01-01');
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/