SQL中DATE_FORMAT函数如何格式化日期_DATE_FORMAT函数格式化日期的用法

DATE_FORMAT函数用于将日期转换为指定格式的字符串,其语法为DATE_FORMAT(date, format),支持多种格式符如%Y、%m、%d等,适用于MySQL中的日期展示与分组统计。

在SQL中,DATE_FORMAT函数主要用于将日期类型的字段按照指定的格式转换为字符串形式。这个函数在MySQL中广泛使用,可以灵活地展示年、月、日、时、分、秒等信息。

DATE_FORMAT函数基本语法

DATE_FORMAT(date, format) 是该函数的标准写法,其中:

  • date:要格式化的日期值,可以是日期字段或表达式
  • format:定义输出格式的字符串,由特定的格式符组成

常用格式符说明

格式化字符串中的符号决定了输出内容。常见格式符包括:

  • %Y:四位数的年份(如2025)
  • %y:两位数的年份(如24)
  • %m:两位数的月份(01-12)
  • %c:数字月份(1-12),不补零
  • %d:两位数的日期(01-31)
  • %e:数字日期(1-31),不补零
  • %H:24小时制的小时(00-23)
  • %h:12小时制的小时(01-12)
  • %i:分钟(00-59)
  • %s:秒(00-59)
  • %M:英文月份名称(如January)
  • %b:英文缩写月份(如Jan)
  • %W:英文星期名称(如Monday)
  • %a:英文缩写星期(如Mon)

实际应用示例

假设有一个订单表 orders,包含 order_date 字段(类型为 DATETIME),可以通过以下方式格式化输出:

  • 显示年月日(YYYY-MM-DD):SELECT DATE_FORMAT(order_date, '%Y-%m-%d') FROM orders;
  • 显示中文习惯日期:SELECT DATE_FORMAT(order_date, '%Y年%m月%d日') FROM orders;
  • 提取时间部分:SELECT DATE_FORMAT(order_date, '%H:%i:%s') AS time_only FROM orders;
  • 按“周几”显示:SELECT DATE_FORMAT(order_date, '%W, %M %d, %Y') FROM orders;
  • 用于分组统计:SELECT DATE_FORMAT(order_date, '%Y-%m') AS month, COUNT(*) FROM orders GROUP BY month;

注意:DATE_FORMAT只适用于MySQL。其他数据库如 PostgreSQL、SQL Server 使用不同的函数(如 TO_CHAR、FORMAT 等)。如果使用的是非My

SQL数据库,该函数可能无法识别。

基本上就这些,掌握常用格式符就能灵活处理大多数日期展示需求。