ORACLE SQL数据类型转换
ORACLE SQL数据类型转换
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
ORACLE SQL数据类型转换
开发工具与关键技术:Oracle sql*plus PLSQL Developer
撰写时间:2019年3月25日
- 1
- 2
下面要说的是,如何将不同类型的数据进行转换处理
这里主要包括有三个函数 时间转换:TO_DATE ,字符转换:TO_CHAR 数值转换:TO_NUMBER
看下图理解:
上图可以理解为(char字符,date时间,number数字)
1、当char类型转换date类型时需要用到to_date函数,
2、当date类型转换char类型时需要用到to_char函数
3、当char类型转换number类型时需要用到to_number函数
4、当number类型转换char类型时需要用到to_char函数
下面看例子
例1:将当前的时间转换为想要的格式输出
已经使用to_char函数进行转换的结果
说明:为什么要用to_char,因为sysdate是系统定义好的时间函数,而’’(单引号)里面的是字符,所以选择时间转字符
select TO_CHAR(sysdate,'YYYY_MM_DD') from employees;
- 1
未使用to_char函数进行转换的数据
select sysdate from employees
- 1
例2:将1999-01-01日期按格式显示出来
使用to_date函数把字符类型的’1999-01-01’转换为日期格式
select to_date('1999-01-01','yyyy-mm-dd') from employees;
- 1
例3:将工资转换为数值类型
(因为工资已经是数值类型的,所以在下面只是表达一下,说明是需要字符类型才能转换为数值类型,但是一定要对应后面的转换)
SELECT TO_NUMBER(TO_CHAR(SALARY,'$999,999,999,999.99'),'$999,999,999,999.99') FROM EMPLOYEES
- 1
不对应后面的类型例子,下面例子是不成立的,因为前面字符比后面的数字类型要多
Select to_number('¥123,465,469,879.84','L999,999.99') FROM EMPLOYEES
- 1