阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

102次阅读
没有评论

共计 3144 个字符,预计需要花费 8 分钟才能阅读完成。

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)

Oracle 数据类型
VARCHAR2(size)  可变长度的字符串, 其最大长度为 size 个字节;size 的最大值是 4000, 而最小值是 1; 你必须指定一个 VARCHAR2 的 size; 

 NVARCHAR2(size)  可变长度的字符串, 依据所选的国家字符集, 其最大长度为 size 个字符或字节;size 的最大值取决于储存每个字符所需的字节数, 其上限为 4000; 你必须指定一个 NVARCHAR2 的
size; 

 NUMBER(p,s)  精度为 p 并且数值范围为 s 的数值; 精度 p 的范围从 1 到 38; 数值范围 s 的范围是从 -84 到 127;

例如:NUMBER(5,2)  表示整数部分最大 3 位,小数部分为 2 位;

NUMBER(5,-2)  表示数的整数部分最大为 7 其中对整数的倒数 2 位为 0, 前面的取整。

NUMBER  表示使用默认值, 即等同于 NUMBER(5); 

 LONG  可变长度的字符数据, 其长度可达 2G 个字节; 

DATE  有效日期范围从公元前 4712 年 1 月 1 日到公元后 4712 年 12 月 31 日 

RAW(size)  长度为 size 字节的原始二进制数据,size 的最大值为 2000 字节;你必须为 RAW 指定一个 size; 

 LONG  RAW  可变长度的原始二进制数据,其最长可达 2G 字节; 

CHAR(size)  固定长度的字符数据, 其长度为 size 个字节;size 的最大值是 2000 字节, 而最小值和默认值是 1; 

 NCHAR(size)  也是固定长度。根据 Unicode 标准定义 

CLOB  一个字符大型对象, 可容纳单字节的字符; 不支持宽度不等的字符集; 最大为 4G 字节 

NCLOB  一个字符大型对象, 可容纳单字节的字符; 不支持宽度不等的字符集; 最大为 4G 字节; 储存国家字符集 

BLOB  一个二进制大型对象; 最大 4G 字节 

BFILE  包含一个大型二进制文件的定位器, 其储存在数据库的外面;使得可以以字符流 I / O 访问存在数据库服务器上的外部 LOB; 最大大小为 4G 字节.

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计3144字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中