MariaDB DATE_FORMAT() 函数使用指南

在 MariaDB 中,DATE_FORMAT() 是一个内置函数,它根据给定的格式字符串格式化日期/时间。

MariaDB DATE_FORMAT() 语法

这是 MariaDB 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, 上面为列举的其他字符

您可以查看 MariaDB 中所有可用的日期格式化符号

如果您不提供参数或提供了错误数量的参数,MariaDB 将报告一个错误:ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

返回值

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

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

MariaDB DATE_FORMAT() 示例

格式化日期

这个语句展示了如何使用 MariaDB DATE_FORMAT() 函数格式化日期值:

SELECT
    DATE_FORMAT('2023-01-10', '%Y'),
    DATE_FORMAT('2023-01-10', '%W'),
    DATE_FORMAT('2023-01-10', '%M %d, %Y'),
    DATE_FORMAT('2023-01-10', '%M %e %Y'),
    DATE_FORMAT('2023-01-10', '%W, %M %e, %Y')\G

输出:

           DATE_FORMAT('2023-01-10', '%Y'): 2023
           DATE_FORMAT('2023-01-10', '%W'): Tuesday
    DATE_FORMAT('2023-01-10', '%M %d, %Y'): January 10, 2023
     DATE_FORMAT('2023-01-10', '%M %e %Y'): January 10 2023
DATE_FORMAT('2023-01-10', '%W, %M %e, %Y'): Tuesday, January 10, 2023

格式化日期时间

这个语句展示了如何使用 MariaDB DATE_FORMAT() 函数格式化日期时间值:

SELECT DATE_FORMAT('2023-01-10 13:14:15', '%W, %M %e %Y %r');

输出:

+-------------------------------------------------------+
| DATE_FORMAT('2023-01-10 13:14:15', '%W, %M %e %Y %r') |
+-------------------------------------------------------+
| Tuesday, January 10 2023 01:14:15 PM                  |
+-------------------------------------------------------+

结论

在 MariaDB 中,DATE_FORMAT() 是一个内置函数,它根据给定的格式字符串格式化日期/时间。