发布时间:2026-07-21阅读(1)
今天分享下oracle三大类型(varchar2,number,date)转换,主要当做备忘,实际工作很容易忘记的一个点。
(1)varchar2变长/char定长-->number,例如:123->123
(2)varchar2/char-->date,例如:25-4月-15->25-4月-15
(3)number---->varchar2/char,例如:123->123
(4)date------>varchar2/char,例如:25-4月-15->25-4月-15
1)=号二边的类型是否相同
2)如果=号二边的类型不同,尝试的去做转换
3)在转换时,要确保合法合理,否则转换会失败,例如:12月不会有32天,一年中不会有13月
实例1、查询1980年12月17日入职的员工(方式一:日期隐示式转换)
select * from emp where hiredate = 17-12月-80;
2、使用to_char(日期,格"常量"式)函数将日期转成字符串,显示如下格式:2015 年 04 月 25 日 星期六
select to_char(sysdate,yyyy" 年 "mm" 月 "dd" 日 "day) from dual;
3、使用to_char(日期,格式)函数将日期转成字符串,显示如格式:2015-04-25今天是星期六 15:15:15
select to_char(sysdate,yyyy-mm-dd"今天是"day hh24:mi:ss) from dual;
或
select to_char(sysdate,yyyy-mm-dd"今天是"day HH12:MI:SS AM) from dual;

4、使用to_char(数值,格式)函数将数值转成字符串,显示如下格式:$1,234
select to_char(1234,$9,999) from dual;

5、使用to_char(数值,格式)函数将数值转成字符串,显示如下格式:¥1,234select to_char(1234,$9,999) from dual;
select to_char(1234,L9,999) from dual;
6、使用to_date(字符串,格式)函数,查询1980年12月17日入职的员工(方式二:日期显式转换)
select * from emp where hiredate = to_date(1980年12月1日,yyyy"年"mm"月"dd"日");
或
select * from emp where hiredate = to_date(1980#12#17,yyyy"#"mm"#"dd);
或
select * from emp where hiredate = to_date(1980-12-17,yyyy-mm-dd);
7、使用to_number(字符串)函数将字符串‘123’转成数字123
select to_number(123) from dual;
注意:
select 123 123 from dual;246
select 123 || 123 from dual;123123

上面的例子大家有空也可以测试下,对于理解oracle中三大类型与隐式数据类型转换还是很有帮助的。后面会分享更多关于DBA内容,感兴趣的朋友可以关注下~

Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图