在MySQL 中取得一週的第一天
在處理資料庫中的時態資料時,通常需要確定給定時間的第一天星期。這對於對資料進行分組和分析一段時間內的趨勢特別有用。
問題陳述
使用者有一個按週對資料進行分組的查詢,但想要顯示第一個每週的某一天而不是不同的日期。他們已確定日期 (2011-01-03),並需要檢索相應的一周第一天 (2011-01-02)。
從星期日開始的週
如果一週從星期日開始,則可以使用以下MySQL 表達式:
DATE_ADD(mydate, INTERVAL(1-DAYOFWEEK(mydate)) DAY)
該表達式通過從給定日期中減去目前的星期幾(從1 開始),然後加上1 天來計算一週的第一天。
從星期一開始的週
如果一週從星期一開始,則需要不同的表達式:
DATE_ADD(mydate, INTERVAL(-WEEKDAY(mydate)) DAY);
在這種情況下,是一周中的當前日期(從0 開始)從給定日期中減去,以確定返回到星期一的天數。
用法範例
假設我們有以下日期,代表2011-01-03:
'2011-01-03'
如果假設從星期日開始,我們可以使用第一個表達式來找出一周的第一天:
SELECT DATE_ADD('2011-01-03', INTERVAL(1-DAYOFWEEK('2011-01-03')) DAY);
這將產生以下結果:
2011-01-02
正如預期的那樣,一周的第一天從星期日開始是2011-01-02。
以上是如何在 MySQL 中尋找一週的第一天?的詳細內容。更多資訊請關注PHP中文網其他相關文章!