mysql datetime 类型字段相减

背景:今天测试一个mariadb中datatime类型的字段相减问题,直接用2个字段相减得到的数值并不是秒,很坑。
后面百度了一些方法,说是使用 DateDiff 函数,这个函数文档还说有3个参数,但是3个参数运行是报错的。要疯了。最后放弃这个方法。
继续百度,终于找到一个靠谱的说法:DateDiff 函数2个值是可以的,再利用time_to_sec 函数转化为秒。

使用 DateDiff 函数时候的示例和报错:

select DateDiff('h',create_date,last_operate_date) as a,count(*) from  bug_problem  where create_date    
between  '2018-03-01'  and   '2018-03-27'  and problem_status=6  group by a ;
mysql datetime 类型字段相减_第1张图片
报错.png

下面使用 time_to_sec 转换:
示例:

select  create_date,last_operate_date,  time_to_sec(timediff(last_operate_date, create_date))/3600 as a 
from  bug_problem  
where create_date    between  '2018-03-01'  and   '2018-03-27'  and problem_status=6  
and (time_to_sec(timediff(last_operate_date, create_date))/3600) >= 24
and (time_to_sec(timediff(last_operate_date, create_date))/3600) <= 120;

运行成功了:
mysql datetime 类型字段相减_第2张图片
成功.png

参考链接:https://blog.csdn.net/xiaoyaotan_111/article/details/70853221
提供这个方法的同志很靠谱。点赞。

你可能感兴趣的:(mysql datetime 类型字段相减)