MYSQL时间函数列举

MySQL 提供了丰富的日期和时间函数,用于处理 DATE、DATETIME 和 TIMESTAMP 类型的数据。这些函数可以完成从简单的格式化到复杂的日期计算等各种任务。以下是常用的 MySQL 日期时间函数及其用法:
创建日期和时间

  1. CURRENT_DATE() 或 CURDATE()
    • 返回当前日期(不包含时间部分)。
    SELECT CURRENT_DATE();

  2. CURRENT_TIME() 或 CURTIME()
    • 返回当前时间(不包含日期部分)。
    SELECT CURRENT_TIME();

  3. NOW()
    • 返回当前日期和时间。
    SELECT NOW();

  4. SYSDATE()
    • 返回系统当前日期和时间,与 NOW() 类似,但 SYSDATE() 在函数调用时返回确切的时间,而 NOW() 在语句开始时就确定了时间。
    SELECT SYSDATE();

  5. UTC_DATE()
    • 返回当前的 UTC 日期。
    SELECT UTC_DATE();

  6. UTC_TIME()
    • 返回当前的 UTC 时间。
    SELECT UTC_TIME();

  7. UTC_TIMESTAMP()
    • 返回当前的 UTC 日期和时间。
    SELECT UTC_TIMESTAMP();

格式化日期和时间

  1. DATE_FORMAT(date, format)
    • 按指定格式返回日期字符串。
    SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');

  2. STR_TO_DATE(str, format)
    • 将字符串按照指定格式转换为日期。
    SELECT STR_TO_DATE('2024-12-05 15:30:00', '%Y-%m-%d %H:%i:%s');

提取日期和时间组件

  1. YEAR(date)
    • 返回年份。
    SELECT YEAR('2024-12-05');

  2. MONTH(date)
    • 返回月份。
    SELECT MONTH('2024-12-05');

  3. DAY(date) 或 DAYOFMONTH(date)
    • 返回一个月中的某一天。
    SELECT DAY('2024-12-05');

  4. HOUR(time)
    • 返回小时数。
    SELECT HOUR('15:30:00');

  5. MINUTE(time)
    • 返回分钟数。
    SELECT MINUTE('15:30:00');

  6. SECOND(time)
    • 返回秒数。
    SELECT SECOND('15:30:00');

日期和时间计算

  1. DATE_ADD(date, INTERVAL expr unit) 或 ADDDATE(date, INTERVAL expr unit)
    • 添加一个时间间隔到给定日期。
    SELECT DATE_ADD('2024-12-05', INTERVAL 1 DAY);

  2. DATE_SUB(date, INTERVAL expr unit) 或 SUBDATE(date, INTERVAL expr unit)
    • 从给定日期减去一个时间间隔。
    SELECT DATE_SUB('2024-12-05', INTERVAL 1 DAY);

  3. DATEDIFF(expr1, expr2)
    • 计算两个日期之间的天数差。
    SELECT DATEDIFF('2024-12-05', '2024-12-01');

  4. TIMEDIFF(expr1, expr2)
    • 计算两个时间之间的差异。
    SELECT TIMEDIFF('15:30:00', '14:30:00');

  5. TIMESTAMPDIFF(unit, datetime_expr1, datetime_expr2)
    • 计算两个日期/时间表达式之间的差异,单位可以是:MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, 或 YEAR。
    SELECT TIMESTAMPDIFF(YEAR, '2020-01-01', '2024-12-05');

其他有用的函数

  1. LAST_DAY(date)
    • 返回指定月份的最后一天。
    SELECT LAST_DAY('2024-12-01');

  2. PERIOD_DIFF(P1, P2)
    • 返回两个期间(YYMM或YYYYMM格式)之间的月份数差。
    SELECT PERIOD_DIFF(202412, 202001);

  3. WEEK(date[, mode])
    • 返回一年中的周数,模式参数可选,默认为0。
    SELECT WEEK('2024-12-05');

  4. QUARTER(date)
    • 返回一年中的季度。
    SELECT QUARTER('2024-12-05');

  5. EXTRACT(unit FROM date)
    • 从日期中提取特定的时间单位。
    SELECT EXTRACT(YEAR FROM '2024-12-05');

这些函数可以帮助你在MySQL数据库中高效地管理和操作日期和时间数据。根据具体需求选择合适的函数,并结合SQL查询来实现所需的功能。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容