MySQL 中按週分組:超越DATE_FORMAT
與Oracle 方便的TRUNC 函數不同,MySQL 缺乏直接方法將時間戳轉換為上週日的時間戳午夜。為了應對這項挑戰,MySQL 用戶必須採用替代技術。
一種方法是結合YEAR 和WEEK 函數,例如:
SELECT YEAR(timestamp), WEEK(timestamp), ... FROM ... GROUP BY YEAR(timestamp), WEEK(timestamp)
另一種選擇是利用YEARWEEK 函數,使用可選模式參數來控制如何處理跨1 月1 日的周。
SELECT YEARWEEK(mysqldatefield, mode) AS week, ... FROM ... GROUP BY week
透過將這些日期函數組合在一個單獨的函數中表達式,可以獲得所需的周分組:
SELECT YEAR(timestamp) || '/' || WEEK(timestamp) AS week, ... FROM ... GROUP BY week
對於不希望在年初或年末出現不完整週的情況,可能會首選YEAR/WEEK 方法。或者,可以將 YEARWEEK 與設定為 0 或 2 的模式一起使用,以按完整週進行分組,包括它們是否跨越 1 月 1 日。
以上是如何有效率地將MySQL資料按週分組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!