【數據庫】Mysql函數DATE_ADD() 增加日期/時間

有這樣一個場景:數據庫還款計劃表有到期還款日字段,正常是每月2日。但這個字段有些是每月1日,現需要統一改成2日,可以用到DATE_ADD函數,但是執行時需要注意:只能執行一次
DATE_ADD(date,INTERVAL expr type)
具體語句:

select * from ms_repayment_plan where substr(loan_pmt_due_date,9,2)='01';   # 先查出數據,01結尾5條數據
UPDATE ms_repayment_plan SET loan_pmt_due_date=DATE_ADD(loan_pmt_due_date,INTERVAL 1 DAY) 
where substr(loan_pmt_due_date,9,2)='01';     # 然後更新2019-12-01變成2019-12-02

上面的sql語句用到兩個函數:
SUBSTR(str FROM pos FOR len)-->substr(loan_pmt_due_date,9,2)='01'表示從loan_pmt_due_date字段第9個字符開始截取2個字符串
DATE_ADD(date,INTERVAL expr type)-->loan_pmt_due_date=DATE_ADD(loan_pmt_due_date,INTERVAL 1 DAY)表示對字段loan_pmt_due_date的時間增加1天
date 參數是合法的日期表達式。expr 參數是您希望添加的時間間隔。
type 參數可以是下列值:

Type 值
MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH

把問題變得更復雜一點:假設有兩個借款,其中一個借款1的到期還款日爲2日,借款2的到期還款日爲10日。這個字段loan_pmt_due_date日期有多個。此時我們的DATE_ADD函數是無法處理這個問題的,下篇文章介紹另外一個函數DATE_FORMAT處理此問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章