MySQL 获取当前日期函数与 DATE_FORMAT 参数详解

Ryan
Ryan
发布时间:2026-10-14 | 2人浏览过
原创

在数据库开发中,获取系统当前时间和按特定格式输出日期是高频需求。本文将解析 MySQL 中用于获取当前时间的 NOW() 函数,并深入讲解核心的时间格式化函数 DATE_FORMAT。通过列举常用格式化参数(如年、月、日、时、分、秒的代码),提供具体的 SQL 查询示例,帮助用户准确实现日期的展示与存储。

获取系统当前时间

MySQL 提供了一个内置函数 NOW(),用于返回当前日期和时间。其返回值取决于函数使用的上下文(字符串或数字)。默认情况下,它以 'YYYY-MM-DD HH:MM:SS' 的格式返回。

语法:

NOW()

示例:

SELECT NOW();

输出结果示例:

2023-10-25 14:38:59

使用 DATE_FORMAT 格式化日期

当我们需要将日期时间转换为特定的显示格式(如仅显示年月日,或仅显示时分秒)时,应使用 DATE_FORMAT(date, format) 函数。该函数接受两个参数:需要格式化的日期字段或表达式,以及指定输出格式的格式字符串。

语法:

DATE_FORMAT(date, format)
  • date:时间字段或日期时间表达式(如 NOW())。
  • format:由各种格式说明符组成的字符串,每个说明符以百分号 (%) 开头。

常见应用示例:

  1. 仅获取年月日(短格式):
    SELECT DATE_FORMAT(NOW(), '%y-%m-%d');
    -- 输出示例:23-10-25
  2. 获取完整日期格式:
    SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');
    -- 输出示例:2023-10-25 14:38:59
  3. 获取中文风格的日期描述:
    SELECT CONCAT(YEAR(NOW()), '年', MONTH(NOW()), '月', DAY(NOW()), '日');
    -- 注意:此处需组合使用年份、月份、日期的独立函数,因为 DATE_FORMAT 不直接支持中文关键字

DATE_FORMAT 常用参数对照表

以下是 DATE_FORMAT 中最常用的格式化代码及其含义。理解这些代码是灵活定制时间输出的关键。

时间与小时相关

格式代码 含义 示例
%S, %s 秒,两位数字 (00-59) 38
%I, %i 分钟,两位数字 (00-59) 45
%H 小时,24 小时制,两位数字 (00-23) 14
%h 小时,12 小时制,两位数字 (01-12) 02
%k 小时,24 小时制,数字形式 (0-23) 14
%l 小时,12 小时制,数字形式 (1-12) 2
%T 24 小时时间格式 (hh:mm:ss) 14:45:30
%r 12 小时时间格式 (hh:mm:ss AM/PM) 02:45:30 PM
%p AM 或 PM PM

日、月、年相关

格式代码 含义 示例
%W 星期名称 (Sunday-Saturday) Wednesday
%a 星期缩写 (Sun-Sat) Wed
%d 月中天数,两位数字 (00-31) 25
%e 月中天数,数字形式 (1-31) 25
%M 月份全称 (January-December) October
%b 月份缩写 (Jan-Dec) Oct
%m 月份,两位数字 (00-12) 10
%c 月份,数字形式 (1-12) 10
%Y 年份,四位数字 2023
%y 年份,两位数字 23

其他高级格式

格式代码 含义 示例
%j 年中的第几天 (001-366) 298
%w 星期中的第几天 (0=Sunday, 6=Saturday) 3
%U 周数 (0-52),周日为每周第一天 43
%u 周数 (0-52),周一为每周第一天 43
%% 字面量百分号 %

常见问题与注意事项

  1. 大小写敏感性:上述大部分格式代码对大小写敏感,例如 %y (两位年份) 和 %Y (四位年份) 会产生不同结果,使用时请务必区分。
  2. 无效日期:如果输入的日期非法(如 '2023-02-30'),DATE_FORMAT 在严格模式下可能返回 NULL 或产生警告,建议先验证数据合法性。
  3. 性能考量:虽然 DATE_FORMAT 非常方便,但在大数据量表的 WHERE 子句中对时间字段使用该函数可能会阻止索引的使用,导致全表扫描。若用于查询条件,建议保持原始时间类型或使用范围查询。

以上就是 MySQL 获取当前日期函数及 DATE_FORMAT 时间格式化参数的详细内容,更多关于 MySQL 时间处理技巧的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表