返回顶部
首页 > 资讯 > 数据库 >mysql如何求时间差
  • 726
分享到

mysql如何求时间差

2024-04-02 19:04:59 726人浏览 泡泡鱼
摘要

这篇文章主要介绍了Mysql如何求时间差,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 mysql求时间差的方法

这篇文章主要介绍了Mysql如何求时间差,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

mysql求时间差的方法:1、使用TIMEDIFF()函数,语法“TIMEDIFF(dt1, dt2);”;2、使用IMESTAMPDIFF()函数,语法“TIMESTAMPDIFF(unit,begin,end);”。

教程操作环境:windows7系统、mysql8版本、Dell G3电脑。

mysql求时间差

  • timediff()函数 - 计算两个TIME或DATETIME值之间的差值。

  • timestampdiff()函数 - 计算两个DATE或DATETIME值之间的差值。

MySQL TIMEDIFF函数介绍

TIMEDIFF返回两个TIMEDATETIME值之间的差值。 请参阅TIMEDIFF函数的以下语法。

TIMEDIFF(dt1, dt2);

TIMEDIFF函数接受两个必须为相同类型的参数,即TIMEDATETIMETIMEDIFF函数返回表示为时间值的dt1 - dt2的结果。

因为TIMEDIFF函数返回TIME值,所以其结果被限制在从-838:59:59838:59:59TIME值范围内。

MySQL TIMEDIFF函数示例

让我们举一个例子来计算两个时间值之间的差异。

mysql> SELECT TIMEDIFF('12:00:00','10:00:00') diff;
+----------+
| diff     |
+----------+
| 02:00:00 |
+----------+
1 row in set

在这个例子中,我们计算了12:00:0010:00:00之间的差值为:02:00:00

以下示例计算两个DATETIME值之间的差异值:

mysql> SELECT TIMEDIFF('2010-01-01 01:00:00', '2010-01-02 01:00:00') diff;
+-----------+
| diff      |
+-----------+
| -24:00:00 |
+-----------+
1 row in set

如果任一参数为NULLTIMEDIFF函数将返回NULL

mysql> SELECT TIMEDIFF('2010-01-01',NULL) diff;
+------+
| diff |
+------+
| NULL |
+------+
1 row in set, 1 warning (0.00 sec)

如果传递两个不同类型的参数,一个是DATETIME,另一个是TIMETIMEDIFF函数也返回NULL

mysql> SELECT TIMEDIFF('2010-01-01 10:00:00','10:00:00') diff;
+------+
| diff |
+------+
| NULL |
+------+
1 row in set

MySQL TIMESTAMPDIFF函数简介

下面说明了TIMESTAMPDIFF函数的语法。

TIMESTAMPDIFF(unit,begin,end);

TIMESTAMPDIFF函数返回begin-end的结果,其中beginendDATEDATETIME表达式。

TIMESTAMPDIFF函数允许其参数具有混合类型,例如,beginDATE值,end可以是DATETIME值。 如果使用DATE值,则TIMESTAMPDIFF函数将其视为时间部分为“00:00:00”DATETIME值。

unit参数是确定(end-begin)的结果的单位,表示为整数。 以下是有效单位:

  • MICROSECOND

  • SECOND

  • MINUTE

  • HOUR

  • DAY

  • WEEK

  • MONTH

  • QUARTER

  • YEAR

MySQL TIMESTAMPDIFF函数示例

以下示例将以月份值的形式返回2018-01-012018-06-01的差值:

mysql> SELECT TIMESTAMPDIFF(MONTH, '2018-01-01', '2018-06-01') result;
+--------+
| result |
+--------+
|      5 |
+--------+
1 row in set

如果您希望看到差值,只需要将unit参数从MONTH更改为DAY,如下所示:

mysql> SELECT TIMESTAMPDIFF(DAY, '2010-01-01', '2010-06-01') result;
+--------+
| result |
+--------+
|    151 |
+--------+
1 row in set

以下语句返回两个DATETIME值(以分钟为单位)的差异值:

mysql> SELECT TIMESTAMPDIFF(MINUTE, '2018-01-01 10:00:00', '2018-01-01 10:45:00') result;
+--------+
| result |
+--------+
|     45 |
+--------+
1 row in set

请注意,TIMESTAMPDIFF仅考虑与unit参数相关的时间部分。 请参阅以下示例:

mysql> SELECT TIMESTAMPDIFF(MINUTE, '2018-01-01 10:00:00', '2018-01-01 10:45:59') result;
+--------+
| result |
+--------+
|     45 |
+--------+
1 row in set

差值应该是45分59秒。 但是,我们将unit参数传递为MINUTE,因此,函数按预期返回45分钟。

如果使用SECOND而不是MINUTE,则TIMESTAMPDIFF函数将考虑SECOND部分,如以下示例所示:

mysql> SELECT TIMESTAMPDIFF(SECOND, '2018-01-01 10:00:00', '2018-01-01 10:45:59') result;
+--------+
| result |
+--------+
|   2759 |
+--------+
1 row in set

注:45分59秒= 45×60 + 59(秒)= 2759秒

使用MySQL TIMESTAMPDIFF函数计算年龄

首先,我们创建一个名为persons的新表,用于演示。

USE testdb;
CREATE TABLE persons (
    id INT AUTO_INCREMENT PRIMARY KEY,
    full_name VARCHAR(255) NOT NULL,
    date_of_birth DATE NOT NULL
);

其次,向persons表中插入一些行:

INSERT INTO persons(full_name, date_of_birth)
VALUES('John Doe', '1990-01-01'),
      ('David Taylor', '1989-06-06'),
      ('Peter Drucker', '1985-03-02'),
      ('Lily Minsu', '1992-05-05'),
      ('Mary William', '1995-12-01');

第三步,使用TIMESTAMPDIFF来计算persons表中每个人的年龄:

SELECT 
    id,
    full_name,
    date_of_birth,
    TIMESTAMPDIFF(YEAR,
        date_of_birth,
        '2018-01-01') age
FROM
    persons;

执行上面查询语句,得到以下结果 -

+----+---------------+---------------+-----+
| id | full_name     | date_of_birth | age |
+----+---------------+---------------+-----+
|  1 | John Doe      | 1990-01-01    |  28 |
|  2 | David Taylor  | 1989-06-06    |  28 |
|  3 | Peter Drucker | 1985-03-02    |  32 |
|  4 | Lily Minsu    | 1992-05-05    |  25 |
|  5 | Mary William  | 1995-12-01    |  22 |
+----+---------------+---------------+-----+
5 rows in set

在此语句中,我们计算到2018-01-01日为止的年龄。如果要计算当前年龄,可以通过NOW函数替换字面值'2018-01-01',如下所示:

SELECT 
    id,
    full_name,
    date_of_birth,
    TIMESTAMPDIFF(YEAR,
        date_of_birth,
        NOW()) age
FROM
    persons;

执行上面查询语句,得到以下结果 -

+----+---------------+---------------+-----+
| id | full_name     | date_of_birth | age |
+----+---------------+---------------+-----+
|  1 | John Doe      | 1990-01-01    |  27 |
|  2 | David Taylor  | 1989-06-06    |  28 |
|  3 | Peter Drucker | 1985-03-02    |  32 |
|  4 | Lily Minsu    | 1992-05-05    |  25 |
|  5 | Mary William  | 1995-12-01    |  21 |
+----+---------------+---------------+-----+
5 rows in set

感谢你能够认真阅读完这篇文章,希望小编分享的“mysql如何求时间差”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网数据库频道,更多相关知识等着你来学习!

您可能感兴趣的文档:

--结束END--

本文标题: mysql如何求时间差

本文链接: https://lsjlt.com/news/70421.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • mysql如何求时间差
    这篇文章主要介绍了mysql如何求时间差,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 mysql求时间差的方法...
    99+
    2024-04-02
  • mysql怎么求时间差
    mysql求时间差的方法: 1、使用TIMEDIFF()函数 TIMEDIFF(dt1, dt2):计算两个TIME或DATETIME值之间的差值,两个必须为相同类型的参数,即TIME或DATETIME。 TIMEDIFF函数返回表示为时间...
    99+
    2023-08-22
    mysql 数据库
  • python如何求两个时间的时间差
    这篇文章主要介绍“python如何求两个时间的时间差”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python如何求两个时间的时间差”文章能帮助大家解决问题。计算两个时间的时间差:from ...
    99+
    2023-07-04
  • SQL如何求时间差之和
    这篇文章主要介绍了SQL如何求时间差之和,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。题目如下:求每个品牌的促销天数表sale为促销营销表,...
    99+
    2024-04-02
  • 如何用js代码求时间差
    这篇文章主要介绍“如何用js代码求时间差”,在日常操作中,相信很多人在如何用js代码求时间差问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用js代码求时间差”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-07-04
  • php时间戳如何实现求差
    这篇文章主要讲解了“php时间戳如何实现求差”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php时间戳如何实现求差”吧!PHP时间戳求差——掌握常用时间戳函数时间戳是用于表示日期和时间的一种...
    99+
    2023-07-05
  • MySQL去除重叠时间求时间差和的实现
    目录需求: 开车:思路:实现:              &nbs...
    99+
    2022-05-16
    MySQL 时间差和 MySQL 两个时间的时间差
  • mysql如何求差集
    这篇文章主要介绍“mysql如何求差集”,在日常操作中,相信很多人在mysql如何求差集问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql如何求差集”的疑惑有所帮助!接...
    99+
    2024-04-02
  • python求两个时间的时间差(实例代码)
    我们在用python进行分析的时候,可能会碰到计算两个日期的时间差。下面为大家介绍一下如何计算两个时间的时间差: from dateutil.parser import parse ...
    99+
    2022-11-13
    python求时间差 python怎么计算时间差 python时间差
  • php时间戳怎么实现求差
    PHP时间戳求差——掌握常用时间戳函数时间戳是用于表示日期和时间的一种计数方法。在PHP中,时间戳是指自1970年1月1日零时零分零秒起至当前时间的总秒数。由于时间戳是一种通用的时间表示方法,PHP为我们提供了一系列的函数来方便地应用它们。...
    99+
    2023-05-14
    php
  • nodejs如何获取时间戳与时间差
    Nodejs中获取时间戳的方法有很多种,例如: 1.new Date().getTime() 2.Date.now() 3.process.uptime() 4....
    99+
    2022-06-04
    时间差 时间 nodejs
  • oralce如何计算时间差
    这篇文章主要介绍oralce如何计算时间差,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!oralce 计算时间差的实现查询系统时间和给定时间相差的毫秒数 selec ...
    99+
    2024-04-02
  • js如何计算时间差
    这篇“js如何计算时间差”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“js如何计算时间差”...
    99+
    2024-04-02
  • python如何计算时间差
    小编给大家分享一下python如何计算时间差,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!python计算时间差的方法:首先引入datetime包;然后通过“(t...
    99+
    2023-06-06
  • php如何实现时间差
    这篇“php如何实现时间差”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php如何实现时间差”文章吧。php实现时间差的方法...
    99+
    2023-07-05
  • oracle如何计算时间差
    在Oracle中,可以使用以下函数来计算时间差: 使用DATEDIFF函数:DATEDIFF函数可以计算两个日期之间的时间差,单位...
    99+
    2024-04-09
    oracle
  • mysql 日期 计算 时间差 天数差
    mysql计算两个日期的时间差 第一种:TIMESTAMPDIFF函数 三个参数。第一个参数是比较的类型:FRAC_SECOND、SECOND、 MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER、YEAR几...
    99+
    2023-09-02
    mysql 日期差 天数 计算 Powered by 金山文档
  • MySQL 中如何计算两个时间值之间的差异?
    借助 TIMEDIFF() MySQL 函数,可以计算两个时间值之间的差异。示例mysql> Select TIMEDIFF('04:05:45','03:05:45') AS ‘Diffe...
    99+
    2023-10-22
  • JS如何计算距当前时间的时间差
    这篇文章主要介绍JS如何计算距当前时间的时间差,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!如下所示: function get_time_diff(time) ...
    99+
    2024-04-02
  • mysql求差集
    mysql怎么求差集 mysql如何查询两个字段数不同的表中数据不一致的记录 一般可用NOT EXISTS(非存在子句)或 LEFT JOIN左(右)连接后所产生空字段值来筛选两表的差集 classinfo表 student表 ...
    99+
    2023-09-13
    mysql 数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作