MySQL TIMESTAMPDIFF函数简介

TIMESTAMPDIFF(unit,begin,end);

TIMESTAMPDIFF函数返回begin-end的结果,其中beginend是DATE或DATETIME表达式。

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
FROMpersons;

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

+----+---------------+---------------+-----+
| 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
SQL

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

SELECT id,full_name,date_of_birth,TIMESTAMPDIFF(YEAR,date_of_birth,NOW()) age
FROMpersons;
SQL

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

+----+---------------+---------------+-----+
| 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
SQL

在写这篇文章时,当前日期是:2017-08-10

在本教程中,您学习了如何使用MySQL TIMESTAMPDIFF函数来计算两个DATEDATETIME值之间的差值。

//原文出自【易百教程】,商业转载请联系作者获得授权,非商业转载请保留原文链接:https://www.yiibai.com/mysql/timestampdiff.html

文章时,当前日期是:2017-08-10

在本教程中,您学习了如何使用MySQL TIMESTAMPDIFF函数来计算两个DATEDATETIME值之间的差值。

//原文出自【易百教程】,商业转载请联系作者获得授权,非商业转载请保留原文链接:https://www.yiibai.com/mysql/timestampdiff.html

MySQL TIMESTAMPDIFF函数简介相关推荐

  1. mysql timestampdiff_「timestampdiff」MySQL timestampdiff()函数 - seo实验室

    timestampdiff MySQL TIMESTAMPDIFF函数简介 下面说明了TIMESTAMPDIFF函数的语法. TIMESTAMPDIFF(unit,begin,end); TIMEST ...

  2. MySQL timestampdiff()函数

    下面说明了TIMESTAMPDIFF函数的语法. TIMESTAMPDIFF(unit,begin,end); TIMESTAMPDIFF函数返回begin-end的结果,其中begin和end是DA ...

  3. MySQL INSTR函数简介

    MySQL INSTR函数简介 有时,您想要在字符串中查找子字符串或检查字符串中是否存在子字符串.在这种情况下,您可以使用字符串内置INSTR()函数. INSTR()函数返回字符串中子字符串第一次出 ...

  4. MySQL DENSE_RANK函数简介

    MySQL DENSE_RANK函数简介 DENSE_RANK()是一个窗口函数,它为分区或结果集中的每一行分配排名,而排名值没有间隙. 语法: DENSE_RANK() OVER (PARTITIO ...

  5. [Mysql] TIMESTAMPDIFF函数

    TIMESTAMPDIFF函数用于计算两个日期的时间差 语法结构 TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2) 参数说明 unit: 日期比较返回 ...

  6. MySQL timestampdiff()函数返回两个时间之间的差值

    TIMESTAMPDIFF(unit,begin,end); TIMESTAMPDIFF函数返回begin-end的结果,其中begin和end是DATE或DATETIME表达式. TIMESTAMP ...

  7. 数据库系列之mysql 自定义函数function,函数和存储过程的区别

    mysql 自定义函数function,函数和存储过程的区别 https://blog.csdn.net/u010365819/article/details/80470448 https://blo ...

  8. Mysql日期函数使用大全

    为什么80%的码农都做不了架构师?>>>    1.1 获得当前日期+时间(date + time)函数:now() 除了 now() 函数能获得当前的日期时间外,MySQL 中还有 ...

  9. MySQL last_insert_id()函数

    转载自  MySQL last_insert_id()函数 MySQL LAST_INSERT_ID函数简介 在数据库设计中,我们经常使用代理键使用AUTO_INCREMENT属性为主键列生成唯一的整 ...

最新文章

  1. 时间处理_pandas_时间处理小结
  2. 10个性鼠标指针主题包_每个人都应该知道的十大电脑鼠标使用技巧,别说你不知道...
  3. day4 匿名函数、装饰器、生成器、迭代器、内置函数、 json 与 pickle 模块
  4. 线上集群服务器性能参数查看命令
  5. Fabricjs使用Group实现组合对象
  6. 3.非关系型数据库(Nosql)之mongodb:升降序排序,排序分页,$all,$in,$nin,$or,$nor, $exists,游标,更新(update,$set,$unset,$inc)
  7. sklearn自学指南(part49)--字典学习
  8. python的变量名有哪些_【python字符串做变量名的方法有哪些?这些方法对python应用很重要】- 环球网校...
  9. CS231n李飞飞计算机视觉 神经网络训练细节part1下
  10. 抓包分析数据帧中IP数据包的一些关键字段【南邮网课例题】
  11. CVPR 2020 论文大盘点-去雨去雾去模糊篇
  12. GoogleStyle编程代码规范
  13. 804计算机考研,北京邮电大学804信号系统考研经验
  14. Spring BackOff退避算法(一)
  15. Docker安装和基本操作
  16. php公众号提现功能,公众号赞赏提现
  17. Unity 3D游戏编程自学#7——NGUI入门
  18. MySQL--数据库、表基本操作
  19. AT89C51单片机交通灯仿真图+代码
  20. FreeModbus应用系列之一

热门文章

  1. python之 python 起源、语言特点
  2. 6月1日起,未接入防沉迷系统的游戏将停止运营(附详细接入流程)
  3. 分众2.0:情人节放大招为重启上市造势?
  4. 【推荐】HTTP/HTTPS抓包工具——HttpAnalyzer,替代WSockExpert
  5. 艺术饭 x 版权猫:塔链科技“鲸确”精确云清算支持ArtFin艺术饭之文艺金融战略
  6. 你们要的代码来了!爬了菊姐的两万条评论——详细代码解读篇
  7. 考研不歧视双非的院校计算机专业,考研23所良心大学:不歧视“双非”,且保护一志愿。赶紧看过来!...
  8. “GAN之父”Goodfellow与网友互动:关于GAN的11个问题(附视频)
  9. 红米note2 刷机 注意问题:
  10. http测试 java_[软件测试]HttpUnit-测试用例(例子)[ZZ]