DATE_FORMAT¶
说明¶
按照规定的格式显示日期/时间数据。
参数¶
time_expression
date_expression
bigint_expression
text_expression
指定的时间/日期值。支持time、date、bigint、text类型,bigint类型时即为一个纯数字的时间串。
format_expression
时间的输出格式。
时间输出格式:¶
| 格式 | 描述 | 举例 |
|---|---|---|
| %a | 缩写星期名 | SELECT DATE_FORMAT('1998-01-02 11:12:13','%a') FROM DUAL; |
| %b | 缩写月份名 | SELECT DATE_FORMAT('1998-01-02 11:12:13','%b') FROM DUAL; |
| %c | 月份(1-12) | SELECT DATE_FORMAT('1998-01-02 11:12:13','%c') FROM DUAL; |
| %d | 月中天(01-31) | SELECT DATE_FORMAT('1998-01-01 11:12:13','%d') FROM DUAL; |
| %e | 月中天(0-31) | SELECT DATE_FORMAT('1998-01-02 11:12:13','%e') FROM DUAL; |
| %f | 微秒(保留六位整数) | set dateformat='yyyy-mm-dd hh24:mi:ss:ff';SELECT DATE_FORMAT('1998-01-02 11:12:13.123456','%f') FROM DUAL; |
| %h | 小时(01-12) | SELECT DATE_FORMAT('1998-01-02 12:12:13','%h') FROM DUAL; |
| %i | 分钟(00-59) | SELECT DATE_FORMAT('1998-01-02 11:01:13','%i') FROM DUAL; |
| %j | 年中天(001-366) | SELECT DATE_FORMAT('1998-01-02 11:12:13','%j') FROM DUAL; |
| %k | 小时(00-23) | SELECT DATE_FORMAT('1998-01-02 11:12:13','%k') FROM DUAL; |
| %l | 小时(1-12) | SELECT DATE_FORMAT('1998-01-02 11:12:13','%l') FROM DUAL; |
| %m | 月份(01-12) | SELECT DATE_FORMAT('1998-01-02 11:12:13','%m') FROM DUAL; |
| %p | PM 或 AM | SELECT DATE_FORMAT('1998-01-02 11:12:13','%p') FROM DUAL; |
| %r | 时间,HH12:MI:SS AM/PM | SELECT DATE_FORMAT('1998-01-02 11:12:13','%r') FROM DUAL; |
| %s | 秒(00-59) | SELECT DATE_FORMAT('1998-01-02 11:12:13','%s') FROM DUAL; |
| %u | 年中周(星期一是一周的第一天) | SELECT DATE_FORMAT('1998-01-02 11:12:13','%u') FROM DUAL; |
| %v | 年中天(星期一是一周的第一天) | SELECT DATE_FORMAT('1998-01-02 11:12:13','%v') FROM DUAL; |
| %w | 周中天(星期日是一周的第一天) | SELECT DATE_FORMAT('1998-01-02 11:12:13','%w') FROM DUAL; |
| %x | 年中天(星期一是一周的第一天) | SELECT DATE_FORMAT('1998-03-02 11:12:13','%x') FROM DUAL; |
| %y | 年份(保留两位整数,等同YY) | SELECT DATE_FORMAT('1998-04-02 11:12:13','%y') FROM DUAL; |
| %D | 带有英文后缀的月中的天 | SELECT DATE_FORMAT('1998-01-02 11:12:13','%D') FROM DUAL; |
| %H | 小时(00-23) | SELECT DATE_FORMAT('1998-01-02 11:12:13','%H') FROM DUAL; |
| %I | 小时(01-12) | SELECT DATE_FORMAT('1998-01-02 11:12:13','%I') FROM DUAL; |
| %M | 月份名 | SELECT DATE_FORMAT('1998-01-02 11:12:13','%M') FROM DUAL; |
| %S | 秒(00-59) | SELECT DATE_FORMAT('1998-01-02 11:12:13','%S') FROM DUAL; |
| %T | 时间,HH24:MI:SS | SELECT DATE_FORMAT('1998-01-02 11:12:13','%T') FROM DUAL; |
| %U | 年中周(星期日是一周的第一天) | SELECT DATE_FORMAT('1998-01-02 11:12:13','%U') FROM DUAL; |
| %V | 年中天(星期日是一周的第一天) | SELECT DATE_FORMAT('1998-01-02 11:12:13','%V') FROM DUAL; |
| %W | 星期名 | SELECT DATE_FORMAT('1998-01-02 11:12:13','%W') FROM DUAL; |
| %X | 年中天(星期日是一周的第一天) | SELECT DATE_FORMAT('1998-02-02 11:12:13','%X') FROM DUAL; |
| %Y | 年份(保留四位整数,等同YYYY) | SELECT DATE_FORMAT('1998-02-02 11:12:13','%Y') FROM DUAL; |
返回值¶
返回一个text类型的值。
示例¶
示例1: 指定一个time类型的值作为时间
SELECT DATE_FORMAT('11:12:13'::time,'%r') FROM DUAL;
DATE_FORMAT(text) |
-----------------------
11:12:13 AM |
总数目:1
示例2: 指定一个date类型的值作为日期
-- 设置日期格式
set dateformat='yyyy-mm-dd hh24:mi:ss:ff';
SELECT DATE_FORMAT('2023-09-08 11:12:13.123456'::date,'%Y-%m-%d %T.%f') FROM DUAL;
DATE_FORMAT(text) |
-----------------------
2023-09-08 11:12:13.123|
456 |
总数目:1
-- 还原日期格式
reset dateformat;
示例3: 指定一个bigint类型的值作为日期
-- 此时输入的时间串必须为一个纯数字的时间串
SELECT DATE_FORMAT(20230908111213,'%Y-%m-%d %T') FROM DUAL;
DATE_FORMAT(text) |
-----------------------
2023-09-08 11:12:13 |
总数目:1
SELECT DATE_FORMAT(20230908,'%Y-%m-%d %T') FROM DUAL;
DATE_FORMAT(text) |
-----------------------
2023-09-08 00:00:00 |
总数目:1
SELECT DATE_FORMAT(111213,'%Y-%m-%d %T') FROM DUAL;
DATE_FORMAT(text) |
-----------------------
2011-12-13 00:00:00 |
总数目:1
示例4: 指定一个text类型的值作为日期
SELECT DATE_FORMAT('2023-09-08 11:12:13','%Y-%m-%d %T') FROM DUAL;
DATE_FORMAT(text) |
-----------------------
2023-09-08 11:12:13 |
总数目:1
SELECT DATE_FORMAT('20230908111213','%Y-%m-%d %T') FROM DUAL;
DATE_FORMAT(text) |
-----------------------
2023-09-08 11:12:13 |
总数目:1