跳到主要内容

77、MySQL DATE_FORMAT()函数

MySQL DATE_FORMAT() 用于以不同的格式显示日期/时间数据

DATE_FORMAT(date,format)

参数 说明
date 合法的日期
format 日期/时间的输出格式

format 参数可使用的元字符有

元字符 说明
%a 缩写星期名
%b 缩写月名
%c 月,数值
%D 带有英文前缀的月中的天
%d 月的天,数值 ( 00-31 )
%e 月的天,数值 ( 0-31 )
%f 微秒
%H 小时 ( 00-23 )
%h 小时 ( 01-12 )
%I 小时 ( 01-12 )
%i 分钟,数值 ( 00-59 )
%j 年的天 ( 001-366 )
%k 小时 ( 0-23 )
%l 小时 ( 1-12 )
%M 月名
%m 月,数值 ( 00-12 )
%p AM 或 PM
%r 时间,12-小时 ( hh:mm:ss AM 或 PM )
%S 秒 ( 00-59 )
%s 秒 ( 00-59 )
%T 时间, 24-小时 ( hh:mm:ss )
%U 周 ( 00-53 )星期日是一周的第一天
%u 周 ( 00-53 )星期一是一周的第一天
%V 周 ( 01-53 )星期日是一周的第一天,与 %X 使用
%v 周 ( 01-53 )星期一是一周的第一天,与 %x 使用
%W 星期名
%w 周的天 ( 0=星期日, 6=星期六 )
%X 年,其中的星期日是周的第一天,4 位,与 %V 使用
%x 年,其中的星期一是周的第一天,4 位,与 %v 使用
%Y 年,4 位
%y 年,2 位

范例

我们先使用 NOW() 函数获取当前的日期时间

然后使用 DATE_FORMAT() 将日期时间格式化为不同的数据

1、 %b%d%Y%h:%i%p;

SELECT DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p');

运行结果如下

mysql> SELECT DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p');
+----------------------------------------+
| DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p') |
+----------------------------------------+
| May 18 2017 08:49 AM                   |
+----------------------------------------+

2、 %m-%d-%Y;

SELECT DATE_FORMAT(NOW(),'%m-%d-%Y');

运行结果如下

mysql> SELECT DATE_FORMAT(NOW(),'%m-%d-%Y');
+-------------------------------+
| DATE_FORMAT(NOW(),'%m-%d-%Y') |
+-------------------------------+
| 05-18-2017                    |
+-------------------------------+

3、 %d%b%y;

SELECT DATE_FORMAT(NOW(),'%d %b %y');

运行结果如下

mysql> SELECT DATE_FORMAT(NOW(),'%d %b %y');
+-------------------------------+
| DATE_FORMAT(NOW(),'%d %b %y') |
+-------------------------------+
| 18 May 17                     |
+-------------------------------+

4、 '%d%b%Y%T:%f';

SELECT DATE_FORMAT(NOW(),'%d %b %Y %T:%f');

显示结果如下

mysql> SELECT DATE_FORMAT(NOW(),'%d %b %Y %T:%f');
+-------------------------------------+
| DATE_FORMAT(NOW(),'%d %b %Y %T:%f') |
+-------------------------------------+
| 18 May 2017 08:54:56:000000         |
+-------------------------------------+