插件窝 干货文章 MySQL日期函数用法大全 - 详解常用日期时间操作

MySQL日期函数用法大全 - 详解常用日期时间操作

MySQL日期函数用法大全

MySQL提供了丰富的日期和时间函数,用于处理各种日期时间相关的操作。本文将详细介绍MySQL中最常用的日期函数及其用法。

1. 获取当前日期和时间

  • NOW() - 返回当前日期和时间(YYYY-MM-DD HH:MM:SS)
  • CURDATE() - 返回当前日期(YYYY-MM-DD)
  • CURTIME() - 返回当前时间(HH:MM:SS)
  • CURRENT_DATE() - 同CURDATE()
  • CURRENT_TIME() - 同CURTIME()
  • CURRENT_TIMESTAMP() - 同NOW()

2. 日期提取函数

  • YEAR(date) - 返回日期的年份
  • MONTH(date) - 返回日期的月份(1-12)
  • DAY(date) - 返回日期的日(1-31)
  • HOUR(time) - 返回时间的小时(0-23)
  • MINUTE(time) - 返回时间的分钟(0-59)
  • SECOND(time) - 返回时间的秒(0-59)
  • DAYOFWEEK(date) - 返回星期几(1=周日,7=周六)
  • DAYOFYEAR(date) - 返回一年中的第几天(1-366)
  • WEEK(date) - 返回一年中的第几周

3. 日期格式化函数

  • DATE_FORMAT(date, format) - 格式化日期为指定格式

    示例:SELECT DATE_FORMAT(NOW(), '%Y年%m月%d日 %H:%i:%s');

  • TIME_FORMAT(time, format) - 格式化时间为指定格式

4. 日期计算函数

  • DATE_ADD(date, INTERVAL expr unit) - 日期加法

    示例:SELECT DATE_ADD(NOW(), INTERVAL 1 DAY);

  • DATE_SUB(date, INTERVAL expr unit) - 日期减法
  • DATEDIFF(date1, date2) - 计算两个日期之间的天数差
  • TIMEDIFF(time1, time2) - 计算两个时间之间的差值
  • TIMESTAMPDIFF(unit, datetime1, datetime2) - 计算两个日期时间的差值

5. 其他实用日期函数

  • LAST_DAY(date) - 返回月份的最后一天
  • MAKEDATE(year, dayofyear) - 根据年份和天数创建日期
  • MAKETIME(hour, minute, second) - 创建时间值
  • UNIX_TIMESTAMP() - 返回UNIX时间戳
  • FROM_UNIXTIME(unix_timestamp) - 将UNIX时间戳转换为日期时间

6. 日期函数使用示例

以下是一些常见的日期函数使用场景:

-- 查询7天前的日期
SELECT DATE_SUB(CURDATE(), INTERVAL 7 DAY);

-- 计算两个日期之间的月数差
SELECT TIMESTAMPDIFF(MONTH, '2023-01-01', '2023-06-15');

-- 格式化日期显示
SELECT DATE_FORMAT(NOW(), '%W, %M %d %Y %H:%i:%s');

-- 获取本月的第一天
SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL DAY(CURDATE())-1 DAY), '%Y-%m-%d');

掌握这些MySQL日期函数,可以大大提高处理日期时间数据的效率和灵活性。