欢迎来到徐庆高(Tea)的个人博客网站
磨难很爱我,一度将我连根拔起。从惊慌失措到心力交瘁,我孤身一人,但并不孤独无依。依赖那些依赖我的人,信任那些信任我的人,帮助那些给予我帮助的人。如果我愿意,可以分裂成无数面镜子,让他们看见我,就像看见自己。察言观色和模仿学习是我的领域。像每个深受创伤的人那样,最终,我学会了随遇而安。
当前位置: 日志文章 > 详细内容

Oracle中TO_NUMBER()函数的使用

2025年08月05日 Oracle
to_number()函数是oracle中常用的类型转换函数,是将一些处理过的按一定格式编排过的字符串变回数值型的格式常用于将文本文件或用户输入中的数字字符串转换为可计算的数值以及处理带有货币符号、千

to_number()函数是oracle中常用的类型转换函数,是将一些处理过的按一定格式编排过的字符串变回数值型的格式

常用于将文本文件或用户输入中的数字字符串转换为可计算的数值以及处理带有货币符号、千位分隔符等格式的数值字符串

语法结构

to_number(converted_str, format, nls_parameters)

参数说明

  • converted_str:要转换为数字的字符串
  • format:指定字符串中的格式 (可选)
  • nls_parameters:指定国家语言支持参数,如小数点和千位分隔符 (可选)

format参数常用预定义的的固定格式

格式值含义
9代表一个数字
$显示美元符号
.显示一个小数点
d显示一个小数点
,显示一个千位分隔符号
g显示一个千位分隔符号

示例

select to_number('1234.56') from dual;  -- 1234.56

select to_number('$1,234.56', '$9,999.99') from dual;  -- 1234.56

-- 1234.56 (将逗号识别为小数点,点识别为千位分隔符)
select to_number('1.234,56', '9g999d99', 'nls_numeric_characters='',.''') 
from dual;

-- 进制转换:16进制转换为10进制
select to_number('f','xx') from dual;     -- 15
select to_number('19f','xxx') from dual;  -- 415
-- 报错
select to_number('$12345.678', '$99999.99') from dual;
-- 12345.678
select to_number('$12345.678', '$99999.999') from dual;

提示tips

1.format参数可以使用 d(小数点)、g(千位分隔符)、$(货币符号)等格式元素

2.需要注意的是,被转换的字符串必须符合数值类型的格式,如果被转换的字符串不符合数值型格式,oracle将抛出错误提示

to_number()函数获取oracle数据库当前日期的年、月、日、时、分、秒

-- 年
select to_number(to_char(sysdate,'yyyy')) from dual;  
-- 月
select to_number(to_char(sysdate,'mm')) from dual;    
-- 日
select to_number(to_char(sysdate,'dd')) from dual;    
-- 时(24小时制)
select to_number(to_char(sysdate,'hh24')) from dual;  
-- 分
select to_number(to_char(sysdate,'mi')) from dual; 
-- 秒
select to_number(to_char(sysdate,'ss')) from dual; 

到此这篇关于oracle中to_number()函数的使用的文章就介绍到这了,更多相关oracle to_number()内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!