mysql中计算日期整数差
TIMESTAMPDIFF
语法:
TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2) : 返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差
interval:间隔
FRAC_SECOND。表示间隔是毫秒
SECOND。秒
MINUTE。分钟
HOUR。小时
DAY。天
WEEK。星期
MONTH。月
QUARTER。季度
YEAR。年
datetime_expr1 开始时间
datetime_expr2 结束时间
SELECT TIMESTAMPDIFF(DAY , NOW(),'2018-06-22') day, NOW() day NOW() 1 2018-06-20 09:40:44
这里刚开始觉得有点奇怪,now是20号,用22-20=2 应该是相差两天,为什么查出来是相差1天。
但是如果这样查
SELECT TIMESTAMPDIFF(DAY , NOW(),'2018-06-22 10:00:00') day, NOW() day NOW() 2 2018-06-20 09:45:40
这样就是相差两天了!
有个相对应的函数
TIMESTAMPADD
语法:
TIMESTAMPADD(interval,int_expr,datetime_expr) : 将整型表达式int_expr 添加到日期或日期时间表达式 datetime_expr中
interval :间隔
FRAC_SECOND。表示间隔是毫秒
SECOND。秒
MINUTE。分钟
HOUR。小时
DAY。天
WEEK。星期
MONTH。月
QUARTER。季度
YEAR。年
int_expr 整型表达式
在月中,有些月有31天的 eg:
SELECT TIMESTAMPADD(MONTH , 2,'2018-05-31') DAY DAY 2018-07-31
但是有些是30天,结果则是:
SELECT TIMESTAMPADD(MONTH , 1,'2018-05-31') DAY DAY 2018-06-30
每件事都需要坚持!