mysql 日期函数 介绍

发布于:2025-06-14 ⋅ 阅读:(21) ⋅ 点赞:(0)

MySQL 提供了多种日期和时间函数,帮助开发者在处理日期、时间和日期时间字段时进行各种操作。以下是常见的 MySQL 日期函数的介绍和示例:

1. CURDATE()

  • 功能:返回当前日期(不包含时间),格式为 YYYY-MM-DD
  • 语法CURDATE()
  • 示例
    SELECT CURDATE(); -- 输出: 2025-06-12

2. CURTIME()

  • 功能:返回当前时间(不包含日期),格式为 HH:MM:SS
  • 语法CURTIME()
  • 示例
     

    sql

    SELECT CURTIME(); -- 输出: 14:30:45

3. NOW()

  • 功能:返回当前日期和时间,格式为 YYYY-MM-DD HH:MM:SS
  • 语法NOW()
  • 示例
    SELECT NOW(); -- 输出: 2025-06-12 14:30:45

4. UTC_DATE()

  • 功能:返回当前的 UTC 日期(不包含时间)。
  • 语法UTC_DATE()
  • 示例
    SELECT UTC_DATE(); -- 输出: 2025-06-12

5. UTC_TIME()

  • 功能:返回当前的 UTC 时间(不包含日期)。
  • 语法UTC_TIME()
  • 示例
    SELECT UTC_TIME(); -- 输出: 14:30:45

6. DATE()

  • 功能:从日期时间值中提取日期部分,格式为 YYYY-MM-DD
  • 语法DATE(datetime)
  • 示例
    SELECT DATE('2025-06-12 14:30:45'); -- 输出: 2025-06-12

7. TIME()

  • 功能:从日期时间值中提取时间部分,格式为 HH:MM:SS
  • 语法TIME(datetime)
  • 示例
    SELECT TIME('2025-06-12 14:30:45'); -- 输出: 14:30:45

8. YEAR()

  • 功能:提取日期中的年份部分。
  • 语法YEAR(date)
  • 示例
    SELECT YEAR('2025-06-12'); -- 输出: 2025

9. MONTH()

  • 功能:提取日期中的月份部分。
  • 语法MONTH(date)
  • 示例
    SELECT MONTH('2025-06-12'); -- 输出: 6

10. DAY() 或 DAYOFMONTH()

  • 功能:提取日期中的天数部分。
  • 语法DAY(date) 或 DAYOFMONTH(date)
  • 示例
    SELECT DAY('2025-06-12'); -- 输出: 12

11. HOUR()

  • 功能:提取时间中的小时部分。
  • 语法HOUR(time)
  • 示例
    SELECT HOUR('14:30:45'); -- 输出: 14

12. MINUTE()

  • 功能:提取时间中的分钟部分。
  • 语法MINUTE(time)
  • 示例
    SELECT MINUTE('14:30:45'); -- 输出: 30

13. SECOND()

  • 功能:提取时间中的秒数部分。
  • 语法SECOND(time)
  • 示例
    SELECT SECOND('14:30:45'); -- 输出: 45

14. DATE_ADD()

  • 功能:向日期或时间添加指定的时间间隔。
  • 语法DATE_ADD(date, INTERVAL expr unit)
    • date:目标日期或时间。
    • expr:要添加的时间量。
    • unit:时间单位(如 SECOND, MINUTE, HOUR, DAY, MONTH, YEAR)。
  • 示例
    SELECT DATE_ADD('2025-06-12', INTERVAL 5 DAY); -- 输出: 2025-06-17

15. DATE_SUB()

  • 功能:从日期或时间中减去指定的时间间隔。
  • 语法DATE_SUB(date, INTERVAL expr unit)
  • 示例
    SELECT DATE_SUB('2025-06-12', INTERVAL 5 DAY); -- 输出: 2025-06-07

16. DATEDIFF()

  • 功能:返回两个日期之间的天数差。
  • 语法DATEDIFF(date1, date2)
    • date1:结束日期。
    • date2:开始日期。
  • 示例
    SELECT DATEDIFF('2025-06-12', '2025-06-07'); -- 输出: 5

17. TIMESTAMPDIFF()

  • 功能:返回两个日期时间之间的差值,以指定的单位表示。
  • 语法TIMESTAMPDIFF(unit, datetime1, datetime2)
    • unit:差值的单位(如 SECOND, MINUTE, HOUR, DAY, MONTH, YEAR)。
    • datetime1 和 datetime2:要比较的两个日期时间。
  • 示例
    SELECT TIMESTAMPDIFF(DAY, '2025-06-01', '2025-06-12'); -- 输出: 11

18. STR_TO_DATE()

  • 功能:将字符串转换为日期时间格式。
  • 语法STR_TO_DATE(string, format)
    • string:包含日期时间数据的字符串。
    • format:日期时间格式。
  • 示例
    SELECT STR_TO_DATE('12-06-2025', '%d-%m-%Y'); -- 输出: 2025-06-12

19. DATE_FORMAT()

  • 功能:将日期时间格式化为字符串。
  • 语法DATE_FORMAT(date, format)
    • date:日期时间。
    • format:目标格式。
  • 示例
    SELECT DATE_FORMAT('2025-06-12', '%Y/%m/%d'); -- 输出: 2025/06/12

20. FROM_UNIXTIME()

  • 功能:将 UNIX 时间戳转换为日期时间格式。
  • 语法FROM_UNIXTIME(unix_timestamp, format)
    • unix_timestamp:UNIX 时间戳(自 1970-01-01 00:00:00 UTC 起的秒数)。
  • 示例
    SELECT FROM_UNIXTIME(1686573300); -- 输出: 2025-06-12 14:30:00

21. UNIX_TIMESTAMP()

  • 功能:将日期时间转换为 UNIX 时间戳。
  • 语法UNIX_TIMESTAMP(datetime)
  • 示例
    SELECT UNIX_TIMESTAMP('2025-06-12 14:30:00'); -- 输出: 1686573300