这篇文章主要介绍了关系型数据库中TIMESTAMPDIFF案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
1.Syntax
TIMESTAMPDIFF(unit,begin,end);根据单位返回时间差,对于传入的开始和结束不需要相同的数据结构,可以存在一个为日期一个日期时间
2. Unit
支持的单位有
微秒
第二
分钟
小时
天
周
月
四分之一
年
3. Example
下面这个例子是对于TIMESTAMPDIFF最基本的用法,
3.1 求2017-01-01 - 2017-02-01 之间有几个月
选择TIMESTAMPDIFF(月,' 2017-01-01 ',' 2017-02-01 ')作为结果;
-
|结果|
-
| 1 |
-
集合中的一行(0.00秒)
3.2 求2017-01-01 - 2017-02-01 之间有几天
选择TIMESTAMPDIFF(日期,' 2017-01-01 ',' 2017-02-01 ')作为结果;
-
|结果|
-
| 31 |
-
集合中的一行(0.00秒)
3.3 求2017-01-01 08: 00:00 -2017-01-01 08: 55:00 之间有几分钟
选择TIMESTAMPDIFF(分钟,' 2017-01-01 08:00:00 ',' 2017-01-01 08:55:00 ')结果;
-
|结果|
-
| 55 |
-
集合中的一行(0.00秒)
3.4 求2017-01-01 08: 00:00 -2017-01-01 08: 55:33 之间有几分钟
选择TIMESTAMPDIFF(分钟,' 2017-01-01 08:00:00 ',' 2017-01-01 08:55:33 ')结果;
-
|结果|
-
| 55 |
-
集合中的一行(0.00秒)
3.5 对于日,分钟进行计算差速器时,会直接将相对应的日,分钟相减
3.6 对于第二会怎样计算呢
选择TIMESTAMPDIFF(秒,' 2017-01-01 08:00:00 ',' 2017-01-01 08:55:33 ')结果;
55 * 60 33=3333
-
|结果|
-
| 3333 |
-
集合中的一行(0.00秒)
3.7 如何求数据库中两个日期字段的差速器
3.7.1 建表
创建表格演示(id INT AUTO _ INCREMENT主键,开始时间日期不为空,结束时间日期不为空);
查询正常,0行受影响(0.10秒)
3.7.2 添加数据
插入演示(开始时间,结束时间)
值(' 1983年一月一日',' 1990年一月一日'),
('1983-01-01', '1989-06-06'),
('1983-01-01', '1985-03-02'),
('1983-01-01', '1992-05-05'),
('1983-01-01 11:12:11', '1995-12-01');
3.7.3 直接询问数据
从演示中选择*
- - -
| id |开始时间|结束时间|
- - -
| 1 | 1983-01-01 | 1990-01-01 |
| 2 | 1983-01-01 | 1989-06-06 |
| 3 | 1983-01-01 | 1985-03-02 |
| 4 | 1983-01-01 | 1992-05-05 |
| 5 | 1983-01-01 | 1995-12-01 |
- - -
一组5行(0.00秒)
3.7.4 计算期间
从演示中选择*,TIMESTAMPDIFF(年份,开始时间,结束时间)作为持续时间;
- - - -
| id |开始时间|结束时间|持续时间|
- - - -
| 1 | 1983-01-01 | 1990-01-01 | 7 |
| 2 | 1983-01-01 | 1989-06-06 | 6 |
| 3 | 1983-01-01 | 1985-03-02 | 2 |
| 4 | 1983-01-01 | 1992-05-05 | 9 |
| 5 | 1983-01-01 | 1995-12-01 | 12 |
- - - -
一组5行(0.00秒)
3.7.5 其他应用
select *,if(TIMESTAMPDIFF(YEAR,end_time,CURRENT_TIMESTAMP()) 26,' 26 ','=26 ')作为演示的结果;
- - - -
| id |开始时间|结束时间|结果|
- - - -
| 1 | 1983-01-01 | 1990-01-01 |=26 |
| 2 | 1983-01-01 | 1989-06-06 |=26 |
| 3 | 1983-01-01 | 1985-03-02 |=26 |
| 4 | 1983-01-01 | 1992-05-05 | 26 |
| 5 | 1983-01-01 | 1995-12-01 | 26 |
- - - -
一组5行(0.00秒)
关于mysql中TIMESTAMPDIFF案例的详细解释,本文到此为止。有关mysql中TIMESTAMPDIFF的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。