mysql的yearweek 函式轉換與逆轉換。

2021-07-04 04:19:10 字數 897 閱讀 1183

在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...