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

 

 

 

 

posted @ 2018-06-20 10:01  NAYNEHC  阅读(798)  评论(0编辑  收藏  举报