[Oracle] TO_CHAR()函数

发布于:2025-08-06 ⋅ 阅读:(10) ⋅ 点赞:(0)

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'

网站公告

今日签到

点亮在社区的每一天
去签到