Oracle三大类型(varchar2,number,date)转换

Oracle中三大类型与隐式数据类型转换
 (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'

Oracle如何隐式转换:
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月17日','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

SQL数据类型
-----------------------------------

以表格形式说明:
 
字段类型    描述   
  bit      0或1的整型数字   
  int      从-2^31(-2,147,483,648)到2^31(2,147,483,647)的整型数字   
  smallint      从-2^15(-32,768)到2^15(32,767)的整型数字   
  tinyint      从0到255的整型数字   
           
  decimal      从-10^38到10^38-1的定精度与有效位数的数字   
  numeric      decimal的同义词   
           
  money      从-2^63(-922,337,203,685,477.5808)到2^63-1(922,337,203,685,477.5807)的货币数据,最小货币单位千分之十   
  smallmoney      从-214,748.3648到214,748.3647的货币数据,最小货币单位千分之十   
           
  float      从-1.79E+308到1.79E+308可变精度的数字   
  real      从-3.04E+38到3.04E+38可变精度的数字   
           
  datetime      从1753年1月1日到9999年12日31的日期和时间数据,最小时间单位为百分之三秒或3.33毫秒   
  smalldatetime      从1900年1月1日到2079年6月6日的日期和时间数据,最小时间单位为分钟   
           
  timestamp      时间戳,一个数据库宽度的唯一数字   
  uniqueidentifier      全球唯一标识符GUID   
           
  char      定长非Unicode的字符型数据,最大长度为8000   
  varchar      变长非Unicode的字符型数据,最大长度为8000   
  text      变长非Unicode的字符型数据,最大长度为2^31-1(2G)   
           
  nchar      定长Unicode的字符型数据,最大长度为8000   
  nvarchar      变长Unicode的字符型数据,最大长度为8000   
  ntext      变长Unicode的字符型数据,最大长度为2^31-1(2G)   
           
  binary      定长二进制数据,最大长度为8000   
  varbinary      变长二进制数据,最大长度为8000   
  image      变长二进制数据,最大长度为2^31-1(2G)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/a507b0be87a249c0f9fed5cac0e2a4af.html