MySQL 函数

MySQL DATE_FORMAT() 函数按照格式掩码指定的方式格式化日期或日期时间值。

语法

DATE_FORMAT(datetime, format_mask) 

参数

datetime必填。 指定要格式化的日期或日期时间值。
format_mask必填。 指定应用于日期时间的格式。 以下是此参数的选项列表。 它可以用于多种组合。

描述
%a工作日名称缩写(周日至周六)
%b月份名称缩写(Jan 到 Dec)
%c月份为数值(0 到 12)
%D以数值表示的月份中的第几天,后跟后缀(第一、第二、第三……)
%d数值形式的月份中的某天(01 到 31)
%e以数值表示的月份中的某天(0 到 31)
%f微秒(000000 到 999999)
%H小时(00 至 23)
%h小时 (00 至 12)
%I小时(00 至 12)
%i分钟(00 到 59)
%j一年中的某天(001 到 366)
%k小时(00 到 23)
%l小时(1 至 12)
%M月份名称完整(一月至十二月)
% m月份名称作为数值(00 到 12)
%pAM 或 PM
%r12 小时 AM 或 PM 格式的时间 (hh:mm:ss AM/PM)
%S秒(00 到 59)
%s秒(00 到 59)
%T24 小时格式的时间 (hh:mm:ss)
%U星期日为一周第一天的星期(00 到 53)
%u星期一为一周第一天的星期 (00 到 53)
%V星期日是一周第一天的周(01 到 53)。 与 %X
%vWeek 一起使用,其中星期一是一周的第一天(01 到 53)。 与 %X 一起使用
%W完整的工作日名称(周日至周六)
%w星期日=0 且星期六=6 的星期几
%X星期日所在星期的年份 是一周的第一天。 与 %V
%x年份一起使用,其中星期一是一周的第一天。 与 %v
%Y使用 4 位数字的年份
%y年份为 2 位数字
%%文字 % 字符

注意:在MySQL中,日和月范围从00开始。它允许日期存储不完整。例如:"2019-00-00"。

返回值

返回由格式掩码指定的格式化日期或日期时间值。

示例 1:

下面的示例显示了DATE_FORMAT()函数的用法。

mysql> SELECT DATE_FORMAT('2018-08-18', '%Y');
Result: '2018'

mysql> SELECT DATE_FORMAT('2018-08-18', '%M %d, %Y');
Result: 'August 18, 2018'

mysql> SELECT DATE_FORMAT('2018-08-18', '%M %e %Y');
Result: 'August 18 2018'

mysql> SELECT DATE_FORMAT('2018-08-18', '%W, %M %e, %Y');
Result: 'Saturday, August 18, 2018'

mysql> SELECT DATE_FORMAT('2018-08-18', '%W');
Result: 'Saturday' 

示例2:

考虑一个名为Employee的数据库表具有以下记录:

EmpIDNameCityAgeDate_of_Joining
1JohnLondon252018-05-25
2MarryNew York242018-10-15
3JoParis272019-06-09
4KimAmsterdam302019-09-21
5RameshNew Delhi282019-10-25

在下面的查询中,DATE_FORMAT()函数用于格式化Date_of_Joining 列:

SELECT *, 
DATE_FORMAT(Date_of_Joining, '%M %d, %Y') AS DATE_FORMAT_Value
FROM Employee; 

这将产生类似于以下内容的结果:

EmpIDNameCityAgeDate_of_Joining
1JohnLondon252018-05-25
2MarryNew York242018-10-15
3JoParis272019-06-09
4KimAmsterdam302019-09-21
5RameshNew Delhi282019-10-25