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

 更新时间:2022年05月07日 14:27:20   作者:专业前端小白  
这篇文章主要介绍了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 8.0新特性 — 检查性约束的使用简介

    MySQL 8.0新特性 — 检查性约束的使用简介

    这篇文章主要介绍了MySQL 8.0新特性 — 检查性约束的简单介绍,帮助大家更好的理解和学习使用MySQL数据库,感兴趣的朋友可以了解下
    2021-03-03
  • MySQL每天自动增加分区的实现

    MySQL每天自动增加分区的实现

    本文主要介绍了MySQL每天自动增加分区的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • MySQL常用命令大全脚本之家总结

    MySQL常用命令大全脚本之家总结

    这篇文章主要介绍了MySQL常用命令,总结了经常使用的MySQL命令,需要的朋友可以参考下
    2014-02-02
  • MySQL修改时区的方法小结

    MySQL修改时区的方法小结

    这篇文章主要介绍了MySQL修改时区的方法,总结分析了三种常见的MySQL时区修改技巧,包括命令行模式、配置文件方式及代码方式,需要的朋友可以参考下
    2016-05-05
  • MySQL 数据库的临时文件究竟储存在哪里

    MySQL 数据库的临时文件究竟储存在哪里

    MySQL使用环境变量TMPDIR的值作为保存临时文件的目录的路径名。
    2009-02-02
  • 详解GaussDB for MySQL性能优化

    详解GaussDB for MySQL性能优化

    GaussDB(for MySQL)数据库在写入性能上,在业界同类产品中是最好的,这主要得益于GaussDB(for MySQL)在MySQL内核方面的诸多优化。其中有一项从“送快递”得来灵感的优化——事务异步提交,值得我们分析。
    2021-05-05
  • MYSQL无法启动提示: Default storage engine (InnoDB) is not available的解决方法

    MYSQL无法启动提示: Default storage engine (InnoDB) is not availabl

    自己用的MYSQL都是用MYISAM数据库,还没涉及到需要INNODB,因此打算直接不加载INNODB引擎。
    2011-05-05
  • MySQL中表的几种连接方式

    MySQL中表的几种连接方式

    这篇文章主要给大家介绍了关于MySQL中表的几种连接方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • MySQL下高可用故障转移方案MHA的超级部署教程

    MySQL下高可用故障转移方案MHA的超级部署教程

    这篇文章主要介绍了MySQL下高可用故障切换方案MHA的超级部署教程,文中队MHA方案的一些特点做了介绍,示例基于Linux系统的服务器环境,需要的朋友可以参考下
    2015-12-12
  • Java将excel中的数据导入到mysql中

    Java将excel中的数据导入到mysql中

    这篇文章主要介绍了Java将excel中的数据导入到数据库,小编觉得挺不错的,现在分享给大家,需要的朋友可以参考借鉴
    2018-05-05

最新评论