MySQL 的 monthadd 函數是用來在日期上增加指定的月份數,用法如下:
SELECT MONTHADD('2019-01-31', 1);
以上語句的含義是在 '2019-01-31' 這個日期上增加一個月,輸出結果為 '2019-02-28'。值得注意的是,由于 2019 年 2 月只有 28 天,所以月末的日期被保持為 2 月 28 日。
monthadd 函數的第一個參數是要進行計算的日期,必須是有效的日期格式。第二個參數是要增加的月份數,可以為任何整數或小數。如果增加的月份數為負數,則表示從該日期中減去指定的月份數。
SELECT MONTHADD('2019-01-31', -1.5);
以上語句的含義是在 '2019-01-31' 這個日期上減少 1.5 個月,輸出結果為 '2018-12-15'。由于月份數是小數,它會被解釋為日數,實際上這條語句相當于 'DATE_SUB('2019-01-31', INTERVAL 45 DAY)'。
如果增加的月份數大于 12 或小于 -12,那么在相加后的日期中可能會發生年份的變化。例如:
SELECT MONTHADD('2019-12-31', 1.5);
以上語句的含義是在 '2019-12-31' 這個日期上增加 1.5 個月,輸出結果為 '2020-02-14'。可以看到,年份從 2019 年變為了 2020 年。
總的來說,monthadd 函數是非常實用的,它可以幫助我們快速計算日期。但是需要注意一些細節,以免出現一些不必要的錯誤。