[Oracle] TO_CHAR()函数

TO_CHAR() 是Oracle中极其重要的转换函数,主要用于将数值、日期或时间戳等数据类型转换为指定格式的字符串

语法格式

TO_CHAR(expression, format, nls_parameters)

参数说明

expression:要转换的表达式(数值、日期或时间戳)
format:指定输出字符串的格式模型(可选)
nls_parameters:指定国家语言支持参数(可选) 

format参数常用格式元素

格式元素说明
9数字位(不显示前导零)
0数字位(显示前导零)
.小数点
D小数点
,千位分隔符
G千位分隔符
$美元货币符号
MI在右侧显示负号
PR将负数用尖括号<>括起来
EEEE科学计数法
YYYY年份数字(4位)
YEAR年份的英文拼写
MM月份数字(01-12)
MONTH月份的全名
DD一月中的第几天(01-31)
DAY星期的全名
Q季度
HH24小时(00-23)
MI分钟(00-59)
SS秒(00-59)
FF毫秒(1-9位)

数值转换字符串示例

SELECT TO_CHAR(0.123) FROM dual;  -- '.123'

SELECT TO_CHAR(1234.56) FROM dual;  -- '1234.56'

SELECT TO_CHAR(1234.56, '$9,999.99') FROM dual;  -- '$1,234.56'

SELECT TO_CHAR(123, '09999') FROM dual;  -- '00123'

SELECT TO_CHAR(123456789, '9.999EEEE') FROM dual;  -- '1.235E+08'

SELECT TO_CHAR(-1234.56, '9,999.99MI') FROM dual;  -- '1,234.56-'

SELECT TO_CHAR(-1234.56, '9,999.99PR') FROM dual;  -- '<1,234.56>'

SELECT TO_CHAR(1234.56, '9G999D99', 'NLS_NUMERIC_CHARACTERS='',.''')  -- '1.234,56'
FROM dual;

日期转换字符串示例 

-- 假设当前日期是2025-08-04 11:17:16
SELECT TO_CHAR(SYSDATE,'YYYY') as nowYear FROM dual;  -- '2025'

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM dual;  -- '2025-08-04'

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM dual;  -- '2025-08-04 11:17:16'

SELECT TO_CHAR(SYSDATE, 'YEAR MONTH DAY') FROM dual;  -- 'TWENTY TWENTY-FIVE 8月  星期一'

SELECT TO_CHAR(SYSDATE, 'YYYY"年"Q"季度"') FROM dual;  -- '2025年3季度'

SELECT TO_CHAR(SYSDATE, '"今天是"YYYY"年"MM"月"DD"日"') FROM dual;  -- '今天是2025年08月04日'

SELECT TO_CHAR(SYSDATE, 'YYYY"年"MM"月"DD"日"', 'NLS_DATE_LANGUAGE=JAPANESE') -- 2025年08月04日
FROM dual;

时间戳转换为字符串示例 

SELECT TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3') FROM dual;  -- '2025-08-04 11:19:44.531'

SELECT TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF6') FROM dual;  -- '2025-08-04 11:19:44.614245'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值