取值為0~6,對(duì)應(yīng)星期一到星期日,每周以星期一為第一天
創(chuàng)新新互聯(lián),憑借10余年的做網(wǎng)站、成都網(wǎng)站制作經(jīng)驗(yàn),本著真心·誠(chéng)心服務(wù)的企業(yè)理念服務(wù)于成都中小企業(yè)設(shè)計(jì)網(wǎng)站有上千案例。做網(wǎng)站建設(shè),選創(chuàng)新互聯(lián)建站。
取值為1~7,對(duì)應(yīng)星期日到星期六,每周以星期日為第一天
取值為Sunday~Saturday,對(duì)應(yīng)星期日到星期六,第一天是星期日;
該函數(shù)與參數(shù)lc_time_names有關(guān),如果設(shè)置此參數(shù)值為"zh_CN",則得到對(duì)應(yīng)的中文名稱“星期日”~“星期六”
示例:
2017-01-02是星期一,使用這三個(gè)函數(shù)分別得到的是0,2,Monday
修改lc_time_names參數(shù)后,得到中文名稱:
該函數(shù)用于獲取日期是年度中的第幾周。該函數(shù)比較復(fù)雜,使用不同的mode,得到不同的結(jié)果。見(jiàn)下表:
例如,mode值為1,則每周的第一天為周一,week()函數(shù)的結(jié)果為0~53,如果第一個(gè)周天數(shù)少于4,則記為第0周,如果第一個(gè)周天數(shù)大于等于4,則記為第1周。
再如,mode值為2,則每周第一天為周日,week()函數(shù)的結(jié)果為1~53,如果第一個(gè)周里包含了周日,則記為第1周,如果第一個(gè)周里沒(méi)有周日,則記為上一年度的最后一周。
實(shí)際上,這個(gè)參數(shù)主要是為了解決跨年的周該如何歸屬的問(wèn)題,是算作本年度的第一周,還是上一年度的最后一周,又或者是算作第0周。這需要根據(jù)使用場(chǎng)景和習(xí)慣來(lái)選擇。
但不管怎么歸屬,week函數(shù)本身的取值范圍有限,所以再跨年的時(shí)間區(qū)間一般不用此函數(shù)(后邊舉例說(shuō)明)。
參考:
假設(shè)我們有一張銷售表,內(nèi)容如下:
現(xiàn)在,我們要統(tǒng)計(jì)每周的銷售額。
首先想到的是用week函數(shù),計(jì)算日期對(duì)應(yīng)的周數(shù),然后按照這個(gè)周數(shù)來(lái)進(jìn)行分組求和:
如果能保證這個(gè)日期區(qū)間是在一個(gè)年度內(nèi)的,那么用week函數(shù)完全沒(méi)有問(wèn)題。
很不幸的是,通常日期區(qū)間是跨年的,例如我們這個(gè)示例中的數(shù)據(jù),恰好有跨年的周,2010-12-31日是第52周,2011-01-01變成了2011年度的第0周,而實(shí)際上這兩天是在同一周。
要解決這個(gè)問(wèn)題,我們不能指望week函數(shù),因?yàn)樵摵瘮?shù)的返回結(jié)果總是在0~53循環(huán),我們需要找一個(gè)固定時(shí)間為第一周,之后的周數(shù)累加而非循環(huán)。
例如,我們選擇2010-01-03為第一周的第一天,之后的任意一天201x-xx-xx距離2010-01-03的天數(shù)/7記為周數(shù),得到結(jié)果如下:
以上解決方案中,我們選擇2010-01-03為起始日期,因?yàn)樗x我們要統(tǒng)計(jì)的時(shí)間足夠遠(yuǎn),同時(shí)它是星期日(我們認(rèn)為周日是一周的第一天)。
如果我們需要把星期一當(dāng)作第一天,只需要改為2010-01-04即可。
命令:
select date_format(curdate(),'%w') from dual;
更多參考:
MySQL中DATE_FORMAT(date, format)函數(shù)可根據(jù)format字符串格式化日期或日期和時(shí)間值date,返回結(jié)果串。
也可用DATE_FORMAT( ) 來(lái)格式化DATE 或DATETIME 值,以便得到所希望的格式。根據(jù)format字符串格式化date值。
mysql
DATE_FORMAT(date,'%Y-%U') 按周查詢
%U 周 (00-53) 星期日是一周的第一天
執(zhí)行結(jié)果:
執(zhí)行結(jié)果:
執(zhí)行結(jié)果:
第一列的周數(shù)據(jù),表示每一年的第幾周,從第一周開(kāi)始計(jì)算起。
執(zhí)行結(jié)果:
執(zhí)行結(jié)果:
執(zhí)行結(jié)果: