跳到主要内容

DATE_FORMAT

date_format

描述

语法

VARCHAR DATE_FORMAT(DATETIME date, VARCHAR format)

将日期类型按照format的类型转化为字符串, 当前支持最大128字节的字符串,如果返回值长度超过128字节,则返回NULL。

date 参数是合法的日期。format 规定日期/时间的输出格式。

可以使用的格式有:

格式符描述
%a三字母缩写星期名
%b三字母缩写月名
%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月名
%m月,数值 (00-12)
%pAM 或 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周中日的名称 (Sunday-Saturday)
%w周的天(0=星期日,6=星期六)
%X年,其中的星期日是周的第一天,4 位,与 %V 使用
%x年,其中的星期一是周的第一天,4 位,与 %v 使用
%Y年,4 位
%y年,2 位
%%用于表示 %
%x对于任何未出现在上列的 x,表示 x 本身

还可以使用三种特殊格式:

yyyyMMdd

yyyy-MM-dd

yyyy-MM-dd HH:mm:ss

举例

mysql> select date_format('2009-10-04 22:23:00', '%W %M %Y');
+------------------------------------------------+
| date_format('2009-10-04 22:23:00', '%W %M %Y') |
+------------------------------------------------+
| Sunday October 2009 |
+------------------------------------------------+

mysql> select date_format('2007-10-04 22:23:00', '%H:%i:%s');
+------------------------------------------------+
| date_format('2007-10-04 22:23:00', '%H:%i:%s') |
+------------------------------------------------+
| 22:23:00 |
+------------------------------------------------+

mysql> select date_format('1900-10-04 22:23:00', '%D %y %a %d %m %b %j');
+------------------------------------------------------------+
| date_format('1900-10-04 22:23:00', '%D %y %a %d %m %b %j') |
+------------------------------------------------------------+
| 4th 00 Thu 04 10 Oct 277 |
+------------------------------------------------------------+

mysql> select date_format('1997-10-04 22:23:00', '%H %k %I %r %T %S %w');
+------------------------------------------------------------+
| date_format('1997-10-04 22:23:00', '%H %k %I %r %T %S %w') |
+------------------------------------------------------------+
| 22 22 10 10:23:00 PM 22:23:00 00 6 |
+------------------------------------------------------------+

mysql> select date_format('1999-01-01 00:00:00', '%X %V');
+---------------------------------------------+
| date_format('1999-01-01 00:00:00', '%X %V') |
+---------------------------------------------+
| 1998 52 |
+---------------------------------------------+

mysql> select date_format('2006-06-01', '%d');
+------------------------------------------+
| date_format('2006-06-01 00:00:00', '%d') |
+------------------------------------------+
| 01 |
+------------------------------------------+

mysql> select date_format('2006-06-01', '%%%d');
+--------------------------------------------+
| date_format('2006-06-01 00:00:00', '%%%d') |
+--------------------------------------------+
| %01 |
+--------------------------------------------+

keywords

DATE_FORMAT,DATE,FORMAT