– Start
所谓格式化日期指的是将日期转为字符串,或将字符串转为日期,下面几个函数可以用来格式化日期。
- TO_CHAR(datetime, ‘format’)
- TO_DATE(character, ‘format’)
- TO_TIMESTAMP(character, ‘format’)
- TO_TIMESTAMP_TZ(character, ‘format’)
TO_CHAR(datetime, 'format')
TO_DATE(character, 'format')
TO_TIMESTAMP(character, 'format')
TO_TIMESTAMP_TZ(character, 'format')
我们先来看看通过下面的 SQL 产生的结果吧,注意,由于语言环境的不同,下面的显示结果可能不同。
- SELECT TO_CHAR(current_timestamp, ‘format’) FROM DUAL;
SELECT TO_CHAR(current_timestamp, 'format') FROM DUAL;
| Format | Result |
| YYYY-MM-DD | 2015-06-15 |
| YYYY-MON-DD | 2015-JUN-15 |
| YYYY-MM-DD HH24:MI:SS FF3 | 2015-06-15 13:18:10 700 |
| YYYY-MM-DD HH24:MI:SS FF3 TZR | 2015-06-15 13:18:10 700 +08:00 |
| DS | 6/15/2015 |
| DL | Monday, June 15, 2015 |
| TS | 1:18:10 PM |
那么 Oracle 支持哪些格式呢?看看下面的表格吧
| Format | Description |
| Y | 年的最后一位数字,如:5 |
| YY | 年的最后两位数字,如:15 |
| YYY | 年的最后三位数字,如:015 |
| YYYY | 年,如:2015 |
| Y,YYY | 年用逗号分割 |
| SYYYY | 年 |
| YEAR | 年拼写,如:TWENTY FIFTEEN |
| SYEAR | 年拼写,如:TWENTY FIFTEEN |
| I | ISO年的最后一位数字,如:5 |
| IY | ISO年的最后两位数字,如:15 |
| IYY | ISO年的最后三位数字,如:015 |
| IYYY | ISO年,如:2015 |
| RR | 两位数字年,如:15 |
| RRRR | 四位数字年,如:2015 |
| MM | Month (01-12) |
| MON | 月份简称,如:JUN |
| MONTH | 月份全称,如:JUNE |
| RM | 罗马数字月份 |
| D | Day of week (1-7) |
| DD | Day of month (1-31) |
| DDD | Day of year (1-366) |
| HH | Hour of day (1-12) |
| HH12 | Hour of day (1-12) |
| HH24 | Hour of day (0-23) |
| MI | Minute (0-59) |
| SS | Second (0-59) |
| SSSSS | Seconds past midnight |
| FF [1..9] | 毫秒 |
| DS | 日期简称,如:6/12/2015 |
| DL | 日期全称,如:Friday, June 12, 2015 |
| TS | 时间简称,如:5:18:03 PM |
| CC | 世纪,如:21 |
| SCC | 世纪,如:21 |
| Q | Quarter of year (1, 2, 3, 4) |
| W | Week of month (1-5) |
| WW | Week of year (1-53) |
| IW | ISO Week of year (1-52 or 1-53) |
| DY | 星期简称,如:Fri |
| DAY | 星期全称,如:Friday |
| AM | |
| A.M. | |
| PM | |
| P.M. | |
| AD | |
| A.D. | |
| BC | |
| B.C. | |
| TZD | 夏令时 |
| TZR | 时区 |
| TZH | 时区之时差 |
| TZM | 时区之分钟差 |
| EE | era 全称 |
| E | era 简称 |
| J | The number of days since January 1, 4712 BC |
| FM | 去掉首尾空格 |
| FX | 精确匹配 |
| X | 秒和毫秒分隔符 |
| TH | DDTH –> 4th |
| SP | DDSP –>FOUR |
| SPTH | DDSPTH –> FOURTH |
| THSP | DDTHSP –> FOURTH |
默认情况下,Oracle 格式化日期时,有一定的容错性,如下面的 SQL 返回正确的结果。
- select to_date(‘20150612’, ‘YYYY/MM/DD’) from dual
- select to_date(‘2015#06#12’, ‘YYYY/MM/DD’) from dual
select to_date('20150612', 'YYYY/MM/DD') from dual
select to_date('2015#06#12', 'YYYY/MM/DD') from dual
如果你想精确匹配,你可以加上 FX修饰符,如:
- select to_date(‘2015/06/12’, ‘FXYYYY/MM/DD’) from dual
select to_date('2015/06/12', 'FXYYYY/MM/DD') from dual
–更多参见:Oracle SQL 精萃
– [转载自](http://blog.youkuaiyun.com/shangboerds/article/details/46502711)
– Last edited on 2015-06-15
– Created by ShangBo on 2015-06-15
– End
本文介绍了Oracle数据库中日期格式化的常用函数及其使用方法,包括TO_CHAR、TO_DATE等,并提供了多种日期格式的示例。
5005

被折叠的 条评论
为什么被折叠?



