mysql怎么求时间差


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

mysql怎么求时间差

本教程操作环境: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)的结果的单位,表示为整数。 以下是有效单位:

Flex3组件和框架的生命周期 中文WORD版 Flex3组件和框架的生命周期 中文WORD版

在整本书中我们所涉及许多的Flex框架源码,但为了简洁,我们不总是显示所指的代码。当你阅读这本书时,要求你打开Flex Builder,或能够访问Flex3框架的源码,跟随着我们所讨论源码是怎么工作及为什么这样做。 如果你跟着阅读源码,请注意,我们经常跳过功能或者具体的代码,以便我们可以对应当前的主题。这样能防止我们远离当前的主题,主要是讲解代码的微妙之处。这并不是说那些代码的作用不重要,而是那些代码处理特别的案例,防止潜在的错误或在生命周期的后面来处理,只是我们当前没有讨论它。有需要的朋友可以下载看看

Flex3组件和框架的生命周期 中文WORD版 0 查看详情 Flex3组件和框架的生命周期 中文WORD版
  • 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'),
      ('D*id 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 | D*id 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 | D*id 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视频教程】

以上就是mysql怎么求时间差的详细内容,更多请关注其它相关文章!


# 之处  # 杭州网站seo哪家好  # 网站abc建设规划  # 灰色推广网站合作公司  # 高安租房网站建设  # 网络营销有必要推广吗吗  # 洛龙区网站优化报价  # 光明淘宝天猫营销推广  # seo职业的企业需求  # 英语营销推广类工作  # 绵阳市公司营销推广方案  # mysql  # 每个人  # 让我们  # 在这个  # 如果您  # 如果你  # 如何设置  # 请注意  # 所示  # 镜像  # 时间差 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 如何取消数字签名  使用AI在VS Code中将代码从一种语言翻译成另一种  响应式设计中动态背景颜色条的实现指南  192.168.1.1路由器后台入口 192.168.1.1默认登录入口  VS Code源代码管理(SCM)视图的进阶使用技巧  《王者荣耀世界》英雄获取攻略  《火花chat》搜索好友方法  苹果手机怎么合并照片_苹果手机合并多张照片的操作方法  如何发挥新媒体矩阵作用?新媒体矩阵怎么搭建?  J*aScript:从子元素中批量移除特定CSS类  windows10怎么设置电源按钮_windows10按下电源键功能修改  如何在mysql中使用索引提示_mysql索引提示优化方法  申通快递物流信息查询 申通快递包裹状态追踪  一点万象签到领积分指南  12306APP选座怎么选充电位置_12306APP带充电插座座位选择方法与技巧  QQ网页版入口导航 QQ网页版在线访问通道  Scipy Sparse CSR 矩阵非零元素行级遍历的最佳实践  iQOO手机信号差网络不稳定怎么办 信号问题原因排查与增强设置【攻略】  realme 10 Pro息屏方案_realme 10 Pro省电策略  路由器DNS怎么设置最快 优化DNS提升上网速度教程  如何在CSS中设置背景图像:一个全面指南  oppo手机如何通过下拉通知栏截图_oppo手机通知栏快捷截图方法  MySQL多重关联查询:利用别名高效获取同一表的多个关联字段  vivo云服务一直提示空间不足怎么办 怎么办vivo云服务老是提示空间不足  Golang如何使用log记录日志信息_Golang log日志记录方法总结  深入理解J*aScript异步操作:setTimeout与调用栈的真相  招商淘客入门指南  《鹿路通》退余额方法  Python中深度嵌套字典与列表的数据提取与条件过滤指南  OPPO A3 WiFi频繁断开怎么办 OPPO A3网络优化技巧  美发店速赢秘籍  百度网盘如何设置上传限额  mysql如何回滚事务_mysql ROLLBACK事务回滚方法  背部总是隐隐作痛怎么回事 背痛如何改善  向日葵客户端怎么进行语音通话_向日葵客户端语音通话功能使用方法  React应用中Commerce.js数据加载与状态管理最佳实践  LocoySpider如何批量采集电商商品_LocoySpider电商采集的模板应用  多闪APP官方下载安装入口_多闪最新版本获取入口  《饿了么》拼好饭点外卖教程2025  Sublime怎么快速复制文件路径_Sublime右键菜单增强技巧  Yandex世界探索 最新官方免登录入口全知道  Win10怎么设置快速启动 Win10开启快速启动设置方法  优酷下载视频的清晰度怎么选_优酷缓存清晰度设置与选择指南  J*a列表元素格式化输出教程  QQ邮箱PC端登录页面_QQ邮箱网页版登录界面  iPhone17Pro如何连接蓝牙耳机_iPhone17Pro蓝牙设备配对与连接方法介绍  支付宝网页版在线入口 支付宝官网电脑登录入口  猫眼电影app怎么查询电影院的营业时间_猫眼电影影院营业时间查询教程  天堂漫画网页版在线阅读 天堂漫画手机版入口  《波斯王子:失落的王冠》剑术大师打法攻略 

 2021-12-27

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.