在 MySQL 中,我們可以使用 WEEK 函數(shù)來(lái)獲取指定日期所在的周數(shù)。WEEK 函數(shù)支持兩個(gè)參數(shù):日期和模式。
當(dāng)只有一個(gè)參數(shù)時(shí),WEEK 函數(shù)將使用默認(rèn)模式 0,這意味著它將使用 Sunday 作為一周的起始日期,并返回周數(shù)(1 ~ 53)。
SELECT WEEK('2022-01-01'); -- 返回 52
在上面的示例中,我們將 '2022-01-01' 作為參數(shù)傳遞給 WEEK 函數(shù),并從中獲取了所在的周數(shù),因?yàn)檫@個(gè)日期所在的周是 2021 年的第 52 周。
但是,如果我們需要使用不同的模式來(lái)獲取周數(shù),則可以指定第二個(gè)參數(shù)來(lái)實(shí)現(xiàn)。下表列出了 MySQL 支持的 WEEk 模式:
模式 | 星期幾作為第一天 | 返回值范圍 | |------|-----------------|--------------| | 0 | Sunday | 1 ~ 53 | | 1 | Monday | 0 ~ 53 | | 2 | Sunday | 0 ~ 53 | | 3 | Monday | 1 ~ 53 | | 4 | Sunday | 1 ~ 52 或 0 | | 5 | Monday | 0 ~ 52 或 53 | | 6 | Sunday | 0 ~ 52 或 53 | | 7 | Monday | 1 ~ 52 或 0
在指定模式時(shí),我們可以在日期參數(shù)的前面添加關(guān)鍵字 MODE_,并在后面跟著模式值。
SELECT WEEK('2022-01-01', MODE_1); -- 返回 1
在上面的示例中,我們將 '2022-01-01' 作為日期參數(shù)傳遞給 WEEK 函數(shù),并指定了模式 1,它將 Monday 作為一周的起始日期,并返回周數(shù)(0 ~ 53)。