转换函数

转换函数用于将数据类型从一种转为另外一种。在某些情况下,oracle server允许值的数据类型和实际的不一样,这时oracle server会隐含的转化数据类型

比如:

create table t1(idint);//这里 注意int不是关键字在oracle下

insert into t1 values('10');-->这样oracle会自动的将10 -->'10 ’

create table t2 (id varchar2(10));

insert into t2 values(1); -->这样oracle就会自动的将1 -->'1';

我们要说的是尽管oracle可以进行隐含的数据类型的转换,但是它并不适应所有的情况,为了提高程序的可靠性,我们应该使用转换函数进行转换。

 

你可以使用select ename, hiredate, sal from emp where deptno =10;显示信息,可是,在某些情况下,这个并不能满足你的需求。

问题:日期是否可以显示 时/分/秒

SQL> select ename, to_char(hiredate, 'yyyy-mm-ddhh24:mi:ss') from emp;

问题:薪水是否可以显示指定的货币符号

SQL> 

yy:两位数字的年份2004-->04

yyyy:四位数字的年份 2004年

mm:两位数字的月份 8月-->08

dd:两位数字的天 30号-->30

hh24: 8点-->20

hh12:8点-->08

mi、ss-->显示分钟\秒 


 

SQL> select to_char(sysdate,'day') from dual;

显示:星期五

set serveroutput on;

if to_char(sysdate,'day') in ('星期日','星期六') then

 dbms_output.put_line('对不起,休息日不能删除员工');

end if;

9:显示数字,并忽略前面0

0:显示数字,如位数不足,则用0补齐

.:在指定位置显示小数点

,:在指定位置显示逗号

$:在数字前加美元

L:在数字前面加本地货币符号

C:在数字前面加国际货币符号

G:在指定位置显示组分隔符、

D:在指定位置显示小数点符号(.)

 

问题:显示薪水的时候,把本地货币单位加在前面

SQL> select ename, to_char(hiredate,'yyyy-mm-dd hh24:mi:ss'), to_char(sal,'L99999.99')from emp;

问题:显示1980年入职的所有员工

SQL> select * from emp where to_char(hiredate, 'yyyy')=1980;

问题:显示所有12月份入职的员工

SQL> select * from emp where to_char(hiredate, 'mm')=12;

这里的12和1980可以加''也可以不加,因为Oracle会自动转换,但是最好加。

 

函数to_date用于将字符串转换成date类型的数据

问题:能否按照中国人习惯的方式年—月—日添加日期。

SQL> create table test1(id date);

SQL> insert into test1 values(to_date('2005-11-11','YYYY-MM-DD'));

1 row inserted

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值