#DATE_FORMAT
DATE_FORMAT函数将给定的参数expr按format定义的格式进行提取,返回VARCHAR类型的字符串。 expr的值为DATE类型或可以转换为DATE类型的其他类型,format必须是字符型或可以转换为字符串类型。
当expr的值为NULL时,函数返回NULL。
format
表示expr对应的format格式,以下为对应列表:
格式定义 | 返回值 |
---|---|
%a | 缩写的工作日名称(Sun..Sat) |
%b | 缩写月份名称(Jan..Dec) |
%c | 月份(1...12) |
%D | 带有英文后缀的月份日期(0th、1st、2nd、3rd、…) |
%d | 每月的第几天(01..31) |
%e | 每月的第几天(1..31) |
%f | 微秒(000000..999999) |
%H | 24进制小时(00...23) |
%h | 12进制小时(01...12) |
%I | 12进制小时(01...12) |
%i | 分钟(00...59) |
%j | 一年中的第几天(001...366) |
%k | 24进制小时(0...23) |
%l | 12进制小时(1...12) |
%M | 月份名称(January...December) |
%m | 月份(01...12) |
%p | 上午或是下午(AM or PM) |
%r | 取12进制time带AM或PM(精确到秒) |
%S | 秒数(00...59) |
%s | 秒数(00...59) |
%T | 取24进制时间(精确到秒) |
%U | 一年中的第几周,周日为一周的第一天 |
%u | 一年中的第几周,周一为一周的第一天 |
%V | 一年中的第几周,周日为一周的第一天,一般与%X一起用 |
%v | 一年中的第几周,周一为一周的第一天,与%x一起用 |
%W | 星期名称(Sunday...Saturday) |
%w | 一周中的第几天(0为周天,6为周六) |
%X | 一周属于哪一年(四位),周天是一周中的第一天,一般与%V一起用 |
%x | 一周属于哪一年(四位),周一是一周中的第一天,一般与%v一起用 |
%Y | 四位年份 |
%y | 两位年份 |
%% | 输出% |
如果输入format为NULL,则函数返回NULL。
如果输入format无法与format列表里的类型相匹配,则输出format对应的字符。
示例
SELECT DATE_FORMAT(NOW(), '%a') res FROM DUAL;
RES
----------------------------------------------------------------
Tue
SELECT DATE_FORMAT(NOW(), '%b') res FROM DUAL;
RES
----------------------------------------------------------------
Apr
SELECT DATE_FORMAT(NOW(), '%c') res FROM DUAL;
RES
----------------------------------------------------------------
4
SELECT DATE_FORMAT(NOW(), '%D') res FROM DUAL;
RES
----------------------------------------------------------------
12th
SELECT DATE_FORMAT(NOW(), '%%') res FROM DUAL;
RES
----------------------------------------------------------------
%