在自己连续几次忘记syntax必须要重新google,并且adddate, add_date, dateadd, date_add傻傻分不清之后,决定记录一下MySQL里ADDDATE
, DATE_ADD
这两个函数的相同与不同。
相同
ADDDATE
和DATE_ADD
的基本syntax是一样的:
ADDDATE(@date, INTERVAL value unit)
例如:
ADDDATE(@date, INTERVAL 3 DAY) # add 3 days to @date
DATE_ADD(@date, INTERVAL -20 MINUTE) # subtract 20 minutes to @date
其中,可选的时间单位非常多,从MICROSECOND
, SECOND
, 到MONTH
, QUARTER
, YEAR
都可以接受。甚至复合的时间单位,如HOUR_MINUTE
, DAY_HOUR
, YEAR_MONTH
也可以,例如:
ADDDATE(@date, INTERVAL '1-2' YEAR_MONTH)
不同
两个函数的不同之处在于,当只进行以日为单位的日期加减时,ADDDATE
有一个简写的使用方法,而DATE_ADD
没有:
ADDDATE(@date, 1) # add one day to @date
总结
因此,为了避免混淆,在实际使用中建议只用ADDDATE
这个函数,因为它的功能和DATE_ADD
相同,并且支持以日为单位的缩写。