[Mysql] TIMESTAMPDIFF函数

[Mysql] TIMESTAMPDIFF函数本文主要讲解 TIMESTAMPDIF 函数

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可以是DATEDATETIME类型值

示例 

-- 相差: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”

-- 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函数可以结合日期函数进行搭配使用

-- 可以结合日期函数进行搭配使用 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();

练习案例

导入数据

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表 

[Mysql] TIMESTAMPDIFF函数

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

解题思路

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

SELECT *, TIMESTAMPDIFF(YEAR,Sage,NOW())AS age FROM Student;

结果展示:

[Mysql] TIMESTAMPDIFF函数

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232273.html原文链接:https://javaforall.net

(0)
上一篇 2025年10月21日 下午4:01
下一篇 2025年10月21日 下午4:22


相关推荐

  • 初学Java心得体会

    初学Java心得体会关于我这一周学习 JAVA 的心得体会本周我开始了 JAVA 语言的入门学习 JAVA 语言比原来的 C 语言要复杂一些 刚学的时候我就感觉到困难了 老师讲的东西实在是一时无法理解透彻 只能机械的模仿老师课堂上的操作 只有课后去学习 Java 语言是一种跨平台的高级语言 无论是网络世界还是桌面应用程序都可以看到 Java 的身影 显然 Java 语言依然保持着旺盛的生命力 这

    2026年3月18日
    2
  • mvdr波束 matlab,mvdr波束形成matlab[通俗易懂]

    mvdr波束 matlab,mvdr波束形成matlab[通俗易懂]信息与通信工程学院阵列信号处理实验报告(自适应波束形成Matlab仿真)…同时研究了窄带信号的自适应波束形成的经典算法。研究并仿真了基于最小均方误差准则的LMS算法、RLS算法和MVDR自适应算法,并且做了一些比较。关键词:数字……MVDR算法matlab程序_计算机软件及应用_IT/计算机_专业资料。clc…根据期望信号的导向矢量,可以采取MVDR算法…

    2022年6月22日
    28
  • Web渗透信息收集之域名、端口、服务、指纹、旁站、CDN和敏感信息

    Web渗透信息收集之域名、端口、服务、指纹、旁站、CDN和敏感信息[网络安全]二.Web渗透信息收集之域名、端口、服务、指纹、旁站、CDN和敏感信息最近开始学习网络安全和系统安全,接触到了很多新术语、新方法和新工具,作为一名初学者,感觉安全领域涉及的知识好广、好杂,但同时也非常有意思。所以我希望通过这100多篇网络安全文章,将Web渗透的相关工作、知识体系、学习路径和探索过程分享给大家,我们一起去躺过那些坑、跨过那些洞、守住那些站。未知攻,焉知防,且看且珍惜,也希望您能推荐和支持作者的公众号。娜璋AI安全之家于2020年8月18日开设,将专注于Python和安全技术,主

    2025年5月24日
    6
  • jvm面试题汇总

    jvm面试题汇总jvm面试题汇总

    2022年4月24日
    42
  • 免费sun.misc.BASE64Decoder.jar下载「建议收藏」

    免费sun.misc.BASE64Decoder.jar下载「建议收藏」相信很多人在转base64时,需要BASE64Decoder包,然而网上都需要C币或者某豆,本着开源思想,资源共享原则,分享链接如下,大家可以自行下载:https://pan.baidu.com/s/127YeW2y_j1NNyrE3w70Ztg,此链接永久有效!!!如有疑问,请联系zhang_quan_888@163.com….

    2022年7月16日
    16
  • linux vim :E325 解决办法[通俗易懂]

    linux vim :E325 解决办法[通俗易懂]在终端中输入ls-la找到.swp文件(这个文件是个隐藏文件,所以删除时要加上.),然后rm.你的swp文件。

    2022年5月16日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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