mysql中TIMESTAMPDIFF简单记录

mysql中TIMESTAMPDIFF简单记录1.  SyntaxTIMESTAMPDIFF(unit,begin,end);根据单位返回时间差,对于传入的begin和end不需要相同的数据结构,可以存在一个为Date一个DateTime2.Unit支持的单位有MICROSECOND SECOND 秒MINUTE 分钟HOUR  小时DAY  天WEEK 星期MONTH 月QUARTER 季度YEAR 年3.Examp…

大家好,又见面了,我是你们的朋友全栈君。

1.  Syntax

TIMESTAMPDIFF(unit,begin,end); 根据单位返回时间差,对于传入的begin和end不需要相同的数据结构,可以存在一个为Date一个DateTime

2. Unit

支持的单位有

  • MICROSECOND 
  • SECOND  秒
  • MINUTE  分钟
  • HOUR   小时
  • DAY   天
  • WEEK  星期
  • MONTH  月
  • QUARTER  季度
  • YEAR  年

3. Example

下面这个例子是对于TIMESTAMPDIFF最基本的用法,

  • 3.1 求 2017-01-01 – 2017-02-01 之间有几个月
复制代码
SELECT TIMESTAMPDIFF(MONTH, '2017-01-01', '2017-02-01') as  result;

+--------+
| result |
+--------+
| 1 |
+--------+
1 row in set (0.00 sec)
复制代码

  • 3.2 求 2017-01-01 – 2017-02-01 之间有几天
复制代码
SELECT TIMESTAMPDIFF(DAY, '2017-01-01', '2017-02-01') as  result;

+--------+
| result |
+--------+
| 31 |
+--------+
1 row in set (0.00 sec)
复制代码

  •  3.3 求 2017-01-01 08: 00:00 – 2017-01-01 08: 55:00 之间有几分钟
复制代码
SELECT TIMESTAMPDIFF(MINUTE, '2017-01-01 08:00:00', '2017-01-01 08:55:00') result;

+--------+
| result |
+--------+
| 55 |
+--------+
1 row in set (0.00 sec)
复制代码

  •  3.4 求 2017-01-01 08: 00:00 – 2017-01-01 08: 55:33 之间有几分钟
复制代码
SELECT TIMESTAMPDIFF(MINUTE, '2017-01-01 08:00:00', '2017-01-01 08:55:33') result;

+--------+
| result |
+--------+
| 55 |
+--------+
1 row in set (0.00 sec)
复制代码

  •  3.5 对于DAY MINUTE进行计算DIFF时,会直接将相对应的DAYMINUTE相减

mysql中TIMESTAMPDIFF简单记录

  • 3.6 对于 SECOND 会怎样计算呢
复制代码
SELECT TIMESTAMPDIFF(SECOND, '2017-01-01 08:00:00', '2017-01-01 08:55:33') result;

55 * 60 + 33 = 3333 +--------+
| result |
+--------+
|   3333 |
+--------+
1 row in set (0.00 sec)
复制代码

  • 3.7 如何求数据库中两个date字段的diff
    • 3.7.1  建表
CREATE TABLE demo (id INT AUTO_INCREMENT PRIMARY KEY, start_time DATE NOT NULL, end_time DATE NOT NULL);
Query OK, 0 rows affected (0.10 sec)

    • 3.7.2  添加数据
复制代码
INSERT INTO demo(start_time, end_time)
VALUES('1983-01-01', '1990-01-01'),
('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 直接query数据
复制代码
select * from demo;
+----+------------+------------+
| id | start_time | end_time |
+----+------------+------------+
| 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 rows in set (0.00 sec)
复制代码

    • 3.7.4 计算duration
复制代码
select *, TIMESTAMPDIFF(YEAR, start_time, end_time) as duration from demo;

+----+------------+------------+----------+
| id | start_time | end_time | duration |
+----+------------+------------+----------+
| 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 rows in set (0.00 sec)
复制代码

    • 3.7.5 其他应用
复制代码
select *, if(TIMESTAMPDIFF(YEAR, end_time, CURRENT_TIMESTAMP())< 26 ,'< 26','>= 26') as result from demo;

+----+------------+------------+--------+
| id | start_time | end_time | result |
+----+------------+------------+--------+
| 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 rows in set (0.00 sec)
复制代码

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/143018.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • CSS中常见的BUG调试

    CSS中常见的BUG调试

  • 增加一行sql(多个左连接查询sql语句)

    sql左,右,内连接转载自:http://323229113.blog.163.com/blog/static/2185362820070172553209/感谢作者.相信做数据分析的朋友,对数据库都比较敏感,作为一名数据分析人员,我们处理数据时总会遇见各种各样的问题,包括连接方式的选择,今天和大家分享一下我眼里的左右连接和内连接的区别.原创博主文章中总结:左连接:保留左边全部行。按左…

  • Linux读写执行(RWX)权限

    Linux读写执行(RWX)权限rwx权限对文件rwx权限 对文件的作用 读权限(r) 表示可读取此文件中的实际内容,例如,可以对文件执行cat、more、less、head、tail等文件查看命令。 写权限(w) 表示可以编辑、新增或者修改文件中的内容,例如,可以对文件执行vim、echo等修改文件数据的命令。注意,无权限不赋予用户删除文件的权利,除非用户对文件的上级目录拥有写权限才可以。 执行权限(x) 表示该文件具有被系统执行的权限。Window系统中查看一个文件是否为可执行文件,

  • Ifconfig_5k是多少啊

    Ifconfig_5k是多少啊文章目录Linux_day06-07Linux的网络相关一.设置主机名二.chkconfig服务配置三.ntp服务四.防火墙服务——软件防火墙五.网络相关的一些命令1. **ifconfig**2. **netstat**3. **ping**4. **telnet**——用于测试端口连通性5. **curl**——资源定位Linux_day06-07Linux的网络相关一.设置主机名临时设置:#hostname 新主机名(切换用户生效,重启还原)永久设置:修改配置文件/etc/hostname

  • idea2021.10 激活码mac版本-激活码分享

    (idea2021.10 激活码mac版本)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • javaScript系列:js中获取时间new Date()详细介绍

    varmyDate=newDate();myDate.getYear();//获取当前年份(2位)myDate.getFullYear();//获取完整的年份(4位,1970-????)m

    2021年12月27日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号