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') DAYDAY2018-07-31
但是有些是30天,结果则是:
SELECT TIMESTAMPADD(MONTH , 1,'2018-05-31') DAYDAY2018-06-30