在sql開發中,經常會有按周進行group by,在將date處理成周時,mysql提供了很多方便的函式,例如week(),yearweek()等。
其中yearweek()是包含年份的week()函式,能更方便的進行聚合。
這次就提供一種對該函式的逆轉換方法。
select curdate(),
yearweek(curdate()),
weekday(curdate()),
concat(yearweek(curdate()),weekday(curdate())+1),
str_to_date(concat(yearweek(curdate()),weekday(curdate())+1),'%x%v%w')
;curdate()
yearweek(curdate())
weekday(curdate())
concat(yearweek(curdate()),weekday(curdate())+1)
str_to_date(concat(yearweek(curdate()),weekday(curdate())+1),'%x%v%w')
2015-07-29
201530
22015303
2015-07-29
這裡做一下解釋,第一列是取當前的日期,用yearweek處理後,是年份+周,當前日期正好為第30周(這個週數1-53中的乙個,即新年內新第一周為1,今年中去年週內的日子,則為去年+53)
第三列是取周幾的函式,這裡做一下說明,這個值得區間為0-6,即周一為0,圖中2即是週三
第四列是對這個日期進行拼接,只有年份與周不能還原出date,這裡需要新增乙個星期數,這裡注意因為後面使用%w匹配,所以數值上要+1,因為%w是認為1周一
第五列即是對這個日期轉換的還原
MySQL的YEARWEEK函式以及查詢本週資料
mysql的yearweek函式以及查詢本週資料 mysql 的 yearweek 是獲取年份和週數的乙個函式,函式形式為 yearweek date mode 例如 2010 3 14 禮拜天 www.2cto.com select yearweek 2010 3 14 返回 11 select ...
mysql日期函 MySQL 日期函式
mysql 日期函式 1,mysql dayofweek 和 weekday 獲取星期 在 mysql 中,我們可以用 dayofweek 和 weekday 函式獲取指定日期的星期.區別在於 dayofweek 獲取的星期索引是以 1 開始,而 weekday 獲取的星期索引是以 0 開始.day...
mysql時間函式中文 Mysql的時間函式
1.本週內的第幾天,從週日開始 mysql select dayofweek 2015 05 25 dayofweek 2015 05 25 2 1 row in set 0.00 sec 2.本月內的第幾天 mysql select dayofmonth 2015 05 25 dayofmonth...