MySQL 日期加减函数汇总

说白了,MySQL的日期加减函数就三套组合拳,加减时间戳用SUBTIME/ADDTIME,加减天数用SUBDATE/ADDDATE,灵活的时间间隔就得靠DATE_SUB/DATE_ADD的INTERVAL玩。
先说最重要的,ADDDATE和DATE_ADD都是干加法活的,但ADDDATE更全能,直接加数字天或者INTERVAL单位都行,去年我们跑那个电商促销项目,用ADDDATE(now(), interval 2 hour)设置优惠券过期时间就贼方便。
另外一点,这些函数对时区不敏感,所以如果你跨时区操作,记得先用CONVERT_TZ转好时间,比如select date_add(now(), interval 1 day)
convert_tz(now(), '+00:00', '+08 :00')。
还有个细节挺关键的,用INTERVAL时必须带单位,像interval 1 month这种直接报错,我一开始也以为MySQL会自动理解,后来发现不对,得写成interval 1 month。
等等,还有个事,microsecond这种毫秒级操作得等5 .6 版本以上,早期版本直接崩。
建议你试试DATE_ADD配合INTERVAL,灵活度真值得试试。

sql里日期怎么加减

MySQL:DATE_ADD(日期字段, INTERVAL 时间间隔 单位)。
MySQL:DATE_SUB(日期字段, INTERVAL 时间间隔 单位)。

SQL Server:DATEADD(日期字段, 数值, 单位)。

PostgreSQL:'日期'::date + INTERVAL '时间间隔'。

不确定直接加数字是否支持,看文档。