【数据库】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处理此问题。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值