欢迎来到代码驿站!

Mysql

当前位置:首页 > 数据库 > Mysql

mysql查询获得两个时间的时间差方式

时间:2022-08-06 11:13:05|栏目:Mysql|点击:

获得当前时间和另一时间的时间差

SELECT TIMESTAMPDIFF(SECOND,(select last_locationTime from municipal_employee where employee_id=9),now()) as diffTime;

mysql的

TIMESTAMPDIFF(SECOND,starttime,endtime)

函数获得时间差,得到的可以是DAY/天,HOUR/小时,MINUTE/分钟,SECOND/秒。

其中starttime为时间小的那个时间,endtime为时间大的时间。

now()函数为获取当前日期时间

mysql最全的计算时间差

计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数,这里主要分享的是通过MySql内置的函数 TimeStampDiff() 实现。

函数 TimeStampDiff() 是MySQL本身提供的可以计算两个时间间隔的函数,语法为:

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)

返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。

其中unit单位有如下几种,分别是:FRAC_SECOND (microseconds), SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR 。

该参数具体释义如下:

  • FRAC_SECOND   表示间隔是毫秒
  • SECOND   秒
  • MINUTE   分钟
  • HOUR   小时
  • DAY   天
  • WEEK   星期
  • MONTH   月
  • QUARTER   季度
  • YEAR   年

例如:

计算两日期之间相差多少周

select timestampdiff(week,'2011-09-30','2015-05-04');

计算两日期之间相差多少天

select timestampdiff(day,'2011-09-30','2015-05-04');

另外计算两日期或时间之间相差多少天还可以使用 to_days 函数,但是该函数不用于阳历出现(1582)前的值,原因是当日历改变时,遗失的日期不会被考虑在内。

因此对于1582 年之前的日期(或许在其它地区为下一年 ), 该函数的结果实不可靠的。

具体用法如:

to_days(end_time) - to_days(start_time);

计算两日期/时间之间相差的秒数

select timestampdiff(SECOND,'2011-09-30','2015-05-04');

另外还可以使用 MySql 内置函数 UNIX_TIMESTAMP 实现,如下:

SELECT UNIX_TIMESTAMP(end_time) - UNIX_TIMESTAMP(start_time);

计算两日期/时间之间相差的时分数

select timestampdiff(MINUTE,'2011-09-30','2015-05-04');

另外还可以如下实现:

SELECT SEC_TO_TIME(UNIX_TIMESTAMP(end_time) - UNIX_TIMESTAMP(start_time));

上一篇:MySQL CHAR和VARCHAR该如何选择

栏    目:Mysql

下一篇:没有了

本文标题:mysql查询获得两个时间的时间差方式

本文地址:http://www.codeinn.net/misctech/210016.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有