MySQL DATE_FORMAT() 函数使用指南

MySQL DATE_FORMAT() 函数按照指定的格式格式化日期时间。

DATE_FORMAT() 语法

这是 MySQL DATE_FORMAT() 函数的语法:

DATE_FORMAT(date, format)

参数

date
必需的。需要格式化的日期。
format
必需的。格式化模式字符串。

下表整理了 format 中可采用的格式化符号:

符号 说明
%a 星期的缩写 (Sun..Sat)
%b 月份的缩写 (Jan..Dec)
%c 月份数字 (0..12)
%D 带有英语前缀的月份中的每天 (0th, 1st, 2nd, 3rd, …)
%d 月份中的每天的两位数字表示 (00..31)
%e 月份中的每天的数字表示 (0..31)
%f 微秒 (000000..999999)
%H 小时 (00..23)
%h 小时 (01..12)
%I 小时 (01..12)
%i 分钟 (00..59)
%j 一年中的每天 (001..366)
%k 小时 (0..23)
%l 小时 (1..12)
%M 月份名称 (January..December)
%m 两位数字月份 (00..12)
%p AM 或者 PM
%r 十二小时制时间 (hh:mm:ss 后跟 AMPM)
%S 秒 (00..59)
%s 秒 (00..59)
%T 二十四小时制时间 (hh:mm:ss)
%U 一年中的星期 (00..53), 每周的开始是星期天; WEEK() 函数中的 mode 0
%u 一年中的星期 (00..53), 每周的开始是星期一; WEEK() 函数中的 mode 1
%V 一年中的星期 (01..53), 每周的开始是星期天; WEEK() 函数中的 mode 2, 用于 %X
%v 一年中的星期 (01..53), 每周的开始是星期一; WEEK() 函数中的 mode 3, 用于 %x
%W 星期的名称 (Sunday..Saturday)
%w 星期中的每天 (0=星期天..6=星期六)
%X 一年中的星期,每周的开始是星期天,四位数字,用于 %V
%x 一年中的星期,每周的开始是星期一,四位数字,用于 %v
%Y 四位数字年份
%y 两位数字年份
%% 转义 %
%x x, 上面为列举的其他字符

返回值

DATE_FORMAT() 函数按照指定的格式格式化日期时间并返回格式化后的字符串。

如果其中任何一个参数为 NULLDATE_FORMAT() 函数将返回 NULL

DATE_FORMAT() 示例

这里是几个 DATE_FORMAT() 函数的示例。

示例 1: 格式化日期

SELECT
    DATE_FORMAT('2022-02-28', '%Y'),
    DATE_FORMAT('2014-02-28', '%W'),
    DATE_FORMAT('2022-02-01', '%M %d, %Y'),
    DATE_FORMAT('2022-02-01', '%M %e %Y'),
    DATE_FORMAT('2022-02-28', '%W, %M %e, %Y')\G
           DATE_FORMAT('2022-02-28', '%Y'): 2022
           DATE_FORMAT('2014-02-28', '%W'): Friday
    DATE_FORMAT('2022-02-01', '%M %d, %Y'): February 01, 2022
     DATE_FORMAT('2022-02-01', '%M %e %Y'): February 1 2022
DATE_FORMAT('2022-02-28', '%W, %M %e, %Y'): Monday, February 28, 2022

示例 2: 格式化日期和时间

SELECT NOW(), DATE_FORMAT(NOW(), '%Y%m%d%H%i%S')\G
                             NOW(): 2022-04-12 03:18:38
DATE_FORMAT(NOW(), '%Y%m%d%H%i%S'): 20220412031838