广告
返回顶部
首页 > 资讯 > 数据库 >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://www.lsjlt.com/news/70421.html(转载时请注明来源链接)

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql如何求时间差
    这篇文章主要介绍了mysql如何求时间差,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 mysql求时间差的方法...
    99+
    2022-10-19
  • 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+
    2022-10-18
  • MySQL去除重叠时间求时间差和的实现
    目录需求: 开车:思路:实现:              &nbs...
    99+
    2022-05-16
    MySQL 时间差和 MySQL 两个时间的时间差
  • 如何用js代码求时间差
    这篇文章主要介绍“如何用js代码求时间差”,在日常操作中,相信很多人在如何用js代码求时间差问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用js代码求时间差”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-07-04
  • php时间戳如何实现求差
    这篇文章主要讲解了“php时间戳如何实现求差”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php时间戳如何实现求差”吧!PHP时间戳求差——掌握常用时间戳函数时间戳是用于表示日期和时间的一种...
    99+
    2023-07-05
  • python求两个时间的时间差(实例代码)
    我们在用python进行分析的时候,可能会碰到计算两个日期的时间差。下面为大家介绍一下如何计算两个时间的时间差: from dateutil.parser import parse ...
    99+
    2022-11-13
    python求时间差 python怎么计算时间差 python时间差
  • mysql如何求差集
    这篇文章主要介绍“mysql如何求差集”,在日常操作中,相信很多人在mysql如何求差集问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql如何求差集”的疑惑有所帮助!接...
    99+
    2022-10-19
  • mysql 日期 计算 时间差 天数差
    mysql计算两个日期的时间差 第一种:TIMESTAMPDIFF函数 三个参数。第一个参数是比较的类型:FRAC_SECOND、SECOND、 MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER、YEAR几...
    99+
    2023-09-02
    mysql 日期差 天数 计算 Powered by 金山文档
  • 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
  • MySQL 中如何计算两个时间值之间的差异?
    借助 TIMEDIFF() MySQL 函数,可以计算两个时间值之间的差异。示例mysql> Select TIMEDIFF('04:05:45','03:05:45') AS ‘Diffe...
    99+
    2023-10-22
  • oralce如何计算时间差
    这篇文章主要介绍oralce如何计算时间差,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!oralce 计算时间差的实现查询系统时间和给定时间相差的毫秒数 selec ...
    99+
    2022-10-18
  • js如何计算时间差
    这篇“js如何计算时间差”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“js如何计算时间差”...
    99+
    2022-10-19
  • python如何计算时间差
    小编给大家分享一下python如何计算时间差,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!python计算时间差的方法:首先引入datetime包;然后通过“(t...
    99+
    2023-06-06
  • php如何实现时间差
    这篇“php如何实现时间差”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php如何实现时间差”文章吧。php实现时间差的方法...
    99+
    2023-07-05
  • MySQL插入时间差八小时怎么办
    这篇文章给大家分享的是有关MySQL插入时间差八小时怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。解决MySQL插入时间差八小时问题一般 jdbc url中 需要添加几个参...
    99+
    2022-10-18
  • mysql查询获得两个时间的时间差方式
    目录获得当前时间和另一时间的时间差mysql最全的计算时间差计算两日期之间相差多少周计算两日期之间相差多少天计算两日期/时间之间相差的秒数计算两日期/时间之间相差的时分数获得当前时间...
    99+
    2022-11-13
  • MySQL中如何计算时间相差的分钟数
    在MySQL中,计算时间相差的分钟数是一个非常常见的需求。本文将介绍一些实用的函数,帮助你轻松地计算时间相差的分钟数。 TIMEDIFF函数 TIMEDIFF函数是MySQL中用于计算时间差的函数之一。它的语法如下: e1e2) e1e2...
    99+
    2023-10-20
    mysql 数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作