广告位联系
返回顶部
分享到

Mysql中TIMESTAMPDIFF函数的语法与练习案例

Mysql 来源:互联网 作者:佚名 发布时间:2022-09-20 08:27:14 人浏览
摘要

TIMESTAMPDIFF函数用于计算两个日期的时间差 语法结构 TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2) 参数说明 unit: 日期比较返回的时间差单位,常用可选值如下: SECOND:秒 MINUTE:分钟 HOUR:小时

TIMESTAMPDIFF函数用于计算两个日期的时间差

语法结构

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)

参数说明 

unit: 日期比较返回的时间差单位,常用可选值如下:

SECOND:秒

MINUTE:分钟

HOUR:小时

DAY:天

WEEK:星期

MONTH:月

QUARTER:季度

YEAR:年

datetime_expr1: 要比较的日期1

datetime_expr2: 要比较的日期2

TIMESTAMPDIFF函数返回datetime_expr2 - datetime_expr1的结果,其中datetime_expr1和datetime_expr2可以是DATE或DATETIME类型值

示例 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

-- 相差:25秒

SELECT TIMESTAMPDIFF(SECOND,'2022-04-23 14:57:00','2022-04-23 14:57:25');

-- 相差:5分钟

SELECT TIMESTAMPDIFF(MINUTE,'2022-04-23 15:00:00','2022-04-23 15:05:00');

-- 相差:5小时

SELECT TIMESTAMPDIFF(HOUR,'2022-04-23 11:20:00', '2022-04-23 16:20:00');

-- 相差:2天

SELECT TIMESTAMPDIFF(DAY,'2022-04-23 11:20:00', '2022-04-25 11:20:00');

-- 相差:1星期

SELECT TIMESTAMPDIFF(WEEK,'2022-04-23 11:20:00', '2022-04-30 11:20:00');

-- 相差:1月

SELECT TIMESTAMPDIFF(MONTH,'2022-04-23 11:20:00', '2022-05-30 11:20:00');

-- 相差:1季度

SELECT TIMESTAMPDIFF(QUARTER,'2022-04-23 11:20:00', '2022-07-23 11:20:00');

-- 相差:1年

SELECT TIMESTAMPDIFF(YEAR,'2022-04-23 11:20:00', '2023-04-23 11:20:00');

TIMESTAMPDIFF函数允许其搭配使用的参数datetime_expr1和datetime_expr2具有混合类型

案例

datetime_expr1是DATE类型值,datetime_expr2是DATETIME类型值,TIMESTAMPDIFF函数会将datetime_expr1自动转换成DATETIME类型值(即在日期后面加上时间“00:00:00”) 

1

2

3

4

-- 12

SELECT TIMESTAMPDIFF(HOUR,'2022-04-27','2022-04-27 12:00:00');

-- 12

SELECT TIMESTAMPDIFF(HOUR,'2022-04-27 00:00:00','2022-04-27 12:00:00');

上述两行代码等价,返回的都是相同的结果

TIMESTAMPDIFF函数可以结合日期函数进行搭配使用

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

-- 可以结合日期函数进行搭配使用

SELECT TIMESTAMPDIFF(SECOND,'2022-04-23', CURRENT_DATE());

SELECT TIMESTAMPDIFF(SECOND,'2022-04-23 15:15:00',NOW());

SELECT TIMESTAMPDIFF(SECOND,'2022-04-23 15:15:00',CURRENT_TIMESTAMP());

  

-- 上述日期函数补充说明

-- CURRENT_DATE()用于返回当前时间

-- 示例结果:2022-04-27

SELECT CURRENT_DATE();

  

-- NOW()用于返回当前日期和时间

-- 示例结果:2022-04-27 11:27:28

SELECT NOW();

  

-- CURRENT_TIMESTAMP()用于返回当前日期和时间

-- 示例结果:2022-04-27 11:30:25

SELECT CURRENT_TIMESTAMP();

练习案例

导入数据

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

DROP TABLE IF EXISTS Student;

CREATE TABLE Student (

    SId VARCHAR (10),

    Sname VARCHAR (10),

    Sage datetime,

    Ssex VARCHAR (10)

)

ENGINE = InnoDB

DEFAULT CHARSET = utf8;

INSERT INTO Student(SId,Sname,Sage,Ssex)

VALUES('01' , '赵雷' , '1990-01-01' , '男')

,('02' , '钱电' , '1990-12-21' , '男')

,('03' , '孙风' , '1990-05-20' , '男')

,('04' , '李云' , '1990-08-06' , '男')

,('05' , '周梅' , '1991-12-01' , '女')

,('06' , '吴兰' , '1992-03-01' , '女')

,('07' , '郑竹' , '1989-07-01' , '女')

,('08' , '张三' , '2017-12-20' , '女')

,('09' , '李四' , '2017-12-25' , '女')

,('11' , '李四' , '2017-12-30' , '女')

,('12' , '孙七' , '2018-01-01' , '女');

Student表 

问题:按照出生日期来算学生年龄,其中当前月日<出生年月的月日,则年龄减一

解题思路

使用NOW()、TIMESTAMPDIFF()函数计算年龄

1

2

SELECT *, TIMESTAMPDIFF(YEAR,Sage,NOW())AS age

FROM Student;

结果展示:


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 : https://blog.csdn.net/Hudas/article/details/124351790
相关文章
  • 深入了解MySQL中的慢查询
    一、什么是慢查询 什么是MySQL慢查询呢?其实就是查询的SQL语句耗费较长的时间。 具体耗费多久算慢查询呢?这其实因人而异,有些公司慢
  • MySQL中with rollup的用法及说明

    MySQL中with rollup的用法及说明
    MySQL with rollup的用法 当需要对数据库数据进行分类统计的时候,往往会用上groupby进行分组。 而在groupby后面还可以加入withcube和withrollup等关
  • mysql分组统计并求出百分比的方法

    mysql分组统计并求出百分比的方法
    mysql分组统计并求出百分比 1、mysql 分组统计并列出百分比 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 SELECT point_id, pname_cn, play_
  • 30种SQL语句优化的方法总结
    1)对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2)应尽量避免在 where 子句中使用!=或操作符
  • 达梦数据库获取SQL实际执行计划的方法

    达梦数据库获取SQL实际执行计划的方法
    环境说明: 操作系统:银河麒麟V10 数据库:DM8 相关关键字:DM数据库、SQL实际执行计划 一、set autotrace trace disql下执行set autotrace trace开启
  • MySQL数据库约束的介绍

    MySQL数据库约束的介绍
    基本介绍 约束用于确保数据库的数据满足特定的商业规则 在mysql中,约束包括:not null,unique,primary key,foreign key 和check5种 1.primary key(主键
  • MySQL索引的介绍

    MySQL索引的介绍
    1. MySQL 索引的最左前缀原则 左前缀原则是联合索引在使用时要遵循的原则,查询索引可以使用联合索引的一部分,但是必须从最左侧开始。
  • windows下Mysql多实例部署的操作方法
    当存在多个项目的时候,需要同时部署时,且只有一台服务器时,哪么就需要部署Mysql多个实例,原理很简单,多个mysql服务运行使用不同的
  • MySQL客户端/服务器运行架构介绍

    MySQL客户端/服务器运行架构介绍
    之前对MySQL的认知只限于会写些SQL,本篇开始进行对MySQL进行深入的学习,记录和整理下自己对MySQL不熟悉的地方。如果有需要可以关注我的
  • mysql8.0主从复制搭建与配置方案

    mysql8.0主从复制搭建与配置方案
    mysql主从搭建 环境:ubuntu20.04.1,mysql:8.0.22。 主:192.168.87.3 备:192.168.87.6 安装数据库 1 2 3 sudo apt-get install mysql-server sudo apt-get install mysql
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计