暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL 的时间函数有哪些?如何使用?

猿java 2025-02-25
10

你好,我是猿java

点击关注公众号👇,获取:大厂简历指导和加技术群深度讨论!

在 MySQL中,提供了很多日期和时间函数,那么,在实际工作中,我们该如何选择?这篇文章,我们一起来聊一聊。

从整体上看,MySQL的日期和时间函数可以分为六大类:获取当前日期和时间、提取日期和时间的特定部分、格式化日期和时间、日期和时间的算术操作、提取日期的部分和Unix 时间戳相关函数等。


1. 获取当前日期和时间

获取当前日期和时间的函数包含以下几个常用函数:

NOW()
 / CURRENT_TIMESTAMP

  • 作用:返回当前的日期和时间。
  • 示例:

    SELECT NOW();
    -- 输出格式例如:2025-01-05 14:30:00

    复制

CURDATE()
 / CURRENT_DATE

  • 作用:返回当前的日期。
  • 示例:

    SELECT CURDATE();
    -- 输出格式例如:2025-01-05

    复制

CURTIME()
 / CURRENT_TIME

  • 作用:返回当前的时间。
  • 示例:

    SELECT CURTIME();
    -- 输出格式例如:14:30:00

    复制


2. 提取日期和时间的特定部分

提取日期和时间的特定部分的常用函数包含以下几个:

YEAR(date)

  • 作用:提取年份。
  • 示例:

    SELECT YEAR('2025-01-25');
    -- 输出:2023

    复制

MONTH(date)

  • 作用:提取月份。
  • 示例:

    SELECT MONTH('2025-01-25');
    -- 输出:10

    复制

DAY(date)

  • 作用:提取日期中的天。
  • 示例:

    SELECT DAY('2025-01-25');
    -- 输出:5

    复制

HOUR(time)
MINUTE(time)
SECOND(time)

  • 作用:分别提取时间中的小时、分钟和秒。
  • 示例:

    SELECT HOUR('14:30:00'), MINUTE('14:30:00'), SECOND('14:30:00');
    -- 输出:14  30  00

    复制


3. 格式化日期和时间

格式化日期和时间的常用函数包含以下几个:

DATE_FORMAT(date, format)

  • 作用:按照指定格式格式化日期/时间。
  • 常用格式符
    • %Y
       年份(四位)
    • %m
       月份(两位)
    • %d
       日(两位)
    • %H
       小时(24小时制)
    • %i
       分钟
    • %s
       秒
  • 示例:

    SELECT DATE_FORMAT(NOW(), '%Y年%m月%d日 %H:%i:%s');
    -- 输出格式例如:2025年01月15日 14:30:00

    复制

STR_TO_DATE(string, format)

  • 作用:将字符串按照指定格式转换为日期/时间类型。
  • 示例:

    SELECT STR_TO_DATE('15-01-2025''%d-%m-%Y');
    -- 输出:2025-01-25

    复制


4. 日期和时间的算术操作

DATE_ADD(date, INTERVAL expr unit)

  • 作用:在日期上添加指定的时间间隔。
  • 示例:

    SELECT DATE_ADD('2025-01-15'INTERVAL 10 DAY);
    -- 输出:2025-01-25

    复制

DATE_SUB(date, INTERVAL expr unit)

  • 作用:从日期中减去指定的时间间隔。
  • 示例:

    SELECT DATE_SUB('2025-03-25'INTERVAL 2 MONTH);
    -- 输出:2025-01-25

    复制

DATEDIFF(date1, date2)

  • 作用:返回两个日期之间的天数差异。
  • 示例:

    SELECT DATEDIFF('2025-01-25''2025-01-15');
    -- 输出:10

    复制

TIMESTAMPDIFF(unit, datetime1, datetime2)

  • 作用:返回两个日期之间指定单位的差异。
  • 单位包括:SECOND、MINUTE、HOUR、DAY、MONTH、YEAR 等。
  • 示例:

    SELECT TIMESTAMPDIFF(DAY'2025-01-15''2025-01-25');
    -- 输出:10
    SELECT TIMESTAMPDIFF(HOUR'2025-01-25 10:00:00''2025-01-25 14:30:00');
    -- 输出:4

    复制


5. 提取日期的部分

EXTRACT(part FROM date)

  • 作用:提取日期或时间的特定部分。
  • 可提取部分:YEAR、MONTH、DAY、HOUR、MINUTE、SECOND 等。
  • 示例:

    SELECT EXTRACT(YEAR FROM '2025-01-25'), EXTRACT(MONTH FROM '2025-01-25');
    -- 输出:2025  01

    复制


6. Unix 时间戳相关函数

UNIX_TIMESTAMP()

  • 作用:返回当前时间的 Unix 时间戳(秒数)。
  • 示例:

    SELECT UNIX_TIMESTAMP();
    -- 输出:例如 1696453800

    复制

FROM_UNIXTIME(unix_timestamp, format)

  • 作用:将 Unix 时间戳转换为日期和时间格式。
  • 示例:

    SELECT FROM_UNIXTIME(1696453800'%Y-%m-%d %H:%i:%s');
    -- 输出:2025-01-25 14:30:00

    复制


7. 总结

本文我们分析了 MySQL 中常用的日期和时间函数,它们在日常工作中有广泛的使用,不过在使用中我们需要注意以下两点:

  • 日期格式:确保日期和时间的格式符合 MySQL 的标准格式(如 YYYY-MM-DD
     或 YYYY-MM-DD HH:MM:SS
    ),否则可能导致函数解析错误。
  • 时区设置NOW()
     和相关函数受服务器时区设置影响,确保时区配置正确以获取准确的时间。
文章总结不易,求一键三连:点赞、转发、在看另外,为了方便大家更深入地进行技术交流,我维护了一个猿java内部的技术交流群,欢迎大家加群讨论。关注公众号「猿java」,回复「加群」即可。

文章转载自猿java,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论