一、日期/时间格式化
1. 年份格式化
| 格式符 |
说明 |
示例(输入:2025-03-19) |
YYYY |
四位年份 |
2025 |
YY |
两位年份 |
25 |
YEAR |
年份全拼(英文) |
TWENTY TWENTY-FIVE |
RR |
两位年份(兼容跨世纪) |
25 |
2. 月份格式化
| 格式符 |
说明 |
示例(输入:03月) |
MM |
两位月份(01-12) |
03 |
MON |
月份缩写(英文) |
MAR |
MONTH |
月份全拼(英文) |
MARCH |
3. 日期/星期格式化
| 格式符 |
说明 |
示例(输入:2025-03-19) |
DD |
两位日期(01-31) |
19 |
DAY |
星期全拼(英文) |
WEDNESDAY |
DY |
星期缩写(英文) |
WED |
D |
一周中的第几天(1-7) |
4(周日=1) |
4. 时间格式化
| 格式符 |
说明 |
示例(输入:23:25:21) |
HH24 |
24小时制小时(00-23) |
23 |
HH12/HH |
12小时制小时(01-12) |
11 |
MI |
分钟(00-59) |
25 |
SS |
秒(00-59) |
21 |
AM/PM |
上午/下午标识 |
PM |
5. 组合格式示例
TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') → '2025-03-19 23:25:21'
TO_CHAR(SYSDATE, 'DY, MONTH DD, YEAR') → 'WED, MARCH 19, TWENTY TWENTY-FIVE'
二、数字格式化
1. 基础占位符
| 格式符 |
说明 |
示例(输入:1234.56) |
9 |
数字占位(忽略前导零) |
1235(四舍五入) |
0 |
强制显示前导/后导零 |
001234.5600 |
. |
小数点 |
1234.56 |
, |
千位分隔符 |
1,234.56 |
2. 货币与符号
| 格式符 |
说明 |
示例(输入:1234.56) |
$ |
美元符号 |
$1234.56 |
L |
本地货币符号 |
¥1234.56(中文环境) |
C |
国际货币代码 |
USD 1234.56 |
3. 科学计数法与特殊格式
| 格式符 |
说明 |
示例(输入:0.007) |
EEEE |
科学计数法 |
7.00E-03 |
PR |
负数括号表示 |
<1234.56> |
S |
显示正负号 |
+1234.56 / -1234.56 |
4. 组合格式示例
TO_CHAR(1234.56, '999,999.99') → '1,234.56'
TO_CHAR(-567, 'S9999PR') → '-567' 或 '<567>'
三、高级修饰符与后缀
1. 修饰符
FM:去除前导零或尾部空格TO_CHAR(03, 'FM09') → '3'(无前导零)
TH/SP:序数或拼写形式TO_CHAR(19, 'DDTH') → '19TH'
TO_CHAR(3, 'MMSP') → 'THREE'(需语言支持)
2. 语言本地化
四、常见错误与避坑指南
1. 混淆分钟与月份
- 错误:
TO_CHAR(时间, 'HH24:mm:ss') → mm 表示月份
- 正确:
TO_CHAR(时间, 'HH24:MI:ss') → 使用 MI 表示分钟。
2. 忽略大小写敏感
YYYY-MM-DD 是合法格式,而 yyyy-mm-dd 可能因数据库不同报错(Oracle 严格区分大小写)。
3. 多余空格或符号