Oracle转换函数
Oracle转换函数是进行不同数据类型转换的函数,是我们平常数据库开发过程当中用的最多的内置函数。常用的函数有to_char()、to_number()、to_date()等等。详细分析如下表:
函数 |
解释 |
案例 |
结果 |
asciistr(x) |
把字符串x转换为数据库字符集对应的ASCII值 |
select asciistr('Oracle技术圈') |
Oracle\6280\672F\5708 |
bin_to_num(x1[x2...]) |
把二进制数值转换为对应的十进制数值 |
select bin_to_num(1,0,0) from dual; |
4 |
cast(x as type) |
数据类型转换函数,该函数可以把x转换为对应的type的数据类型,基本上用于数字,字符,时间类型安装数据库规则进行互转, |
select cast('123' as number) num,cast(123 as varchar2(3)) as ch,cast(to_date('20181112','yyyymmdd') as varchar2(12)) as time |
123/'123'/12-11月-18 (三列值,用"/"隔开) |
convert(x,d_chset[,r_chset]) |
字符串在字符集间的转换函数,对字符串x按照原字符集r_chset转换为目标字符集d_chset,当r_chset不填时,默认选择数据库服务器字符集。 |
select CONVERT('oracle技术圈','US7ASCII','ZHS16GBK') from dual; |
oracle??? |
to_char(x[,f]) |
把字符串或时间类型x按格式f进行格式化转换为字符串。 |
select to_char(123.46,'999.9') from dual; select to_char(sysdate,'yyyy-mm-dd') from dual; |
123.5 2018-11-13 |
to_date(x[,f]) |
可以把字符串x按照格式f进行格式化转换为时间类型结果。 |
select to_date('2018-11-13','yyyy-mm-dd') from dual; |
2018/11/13 |
to_number(x[,f]) |
可以把字符串x按照格式f进行格式化转换为数值类型结果。 |
select to_number('123.74','999.99') from dual |
123.74 |
提醒:其中数值的格式f可以参考下表:
参数 |
示例 |
说明 |
9 |
999 |
指定位置返回数字 |
. |
99.9 |
指定小数点的位置 |
, |
99,9 |
指定位置返回一个逗号 |
$ |
$99.9 |
指定开头返回一个美元符号 |
EEEE |
9.99EEEE |
指定科学计数法 |