Oracle中的函数(转换、字符) 您所在的位置:网站首页 Oracle字符编码转换函数 Oracle中的函数(转换、字符)

Oracle中的函数(转换、字符)

2023-11-25 06:56| 来源: 网络整理| 查看: 265

转换函数介绍

转换函数用于将数据类型从一种转为另外一种,在某种情况下,oracle server允许值的数据类型和实际的不一样,这时oracle server会隐含的转化数据类型比如create table t1(id int);insert into t1 values('10') -->这样oracle会自动的将'10'-->10create table t2(id varchar2(10));insert into t2 values(1); -->这样oracle就会自动的将1-->'1';我们要说到的是尽管oracle可以进行隐含的数据类型的转换,但是它并不适应所有的情况,为了提高程序的可靠性,我们应该使用转换函数进行转换*************to_char()***************你可以使用select ename,hiredate,sal from emp where deptno=10;显示信息,可是,在某些情况下,这个并不能满足你的需求。?日期是否可以显示 时/分/秒SQL> select ename,to_char(hiredate,'yyyy/mm/dd hh24:mi:ss') from emp;注意:如果添加数据的时候没有按照hh24:mi:ss的格式来添加则系统会默认为0即查询的时候显示hh24-->00:00:00 hh12-->12:00:00?薪水是否可以显示指定的货币符号SQL> select ename,to_char(sal,'L99999.99') 薪水 from kkkk;SQL> select ename,to_char(sal,'$99,999.99') 薪水 from kkkk;//货币符号显示在工资的后面SQL> select ename,to_char(sal,'99,999.99L') 薪水 from kkkk;其中:to_char里的L代表的是货币类型,99999.99代表要显示的格式是五位整数和两个小数之所以要这样设计的原因是:表中sal这一列的类型是SAL      NUMBER(7,2)  Y    其中7代表包括整数和小数一共有7位数字,2代表有两个小数yy:两位数字的年份 2004-->04yyyy:四位数字的年份 2004年mm:两位数字的月份 8月-->08dd:2位数字的天 30号-->30hh24:8点 --> 20hh12:8点 --> 08mi、ss -->显示分钟\秒9:显示数字,并忽略前面的00:显示数字,如位数不足,则用0补齐.: 在指定位置显示小数点,: 在指定位置显示逗号$: 在数字前加美元货币符号L:在数字前加本地货币符号C:在数字前加国际货币符号G: 在指定位置显示组分隔符、D: 在指定位置显示小数点符号(.)to_char?显示1980年入职的所有员工SQL> select * from emp where to_char(hiredate,'yyyy')=1980;?显示所有12月份入职的员工SQL> select * from emp where to_char(hiredate,'mm')=12;to_date函数to_date用于将字符串转换成date类型的数据?能否按照中国人习惯的方式年-月-日添加日期SQL> insert into kkkk values(3243,'HELEN','ANALYST',7902,to_date('1994-5-2','yyyy-mm-dd'),900,30,20);

字符函数介绍

字符函数是oracle中最常用的函数,分别有1.lower(char):将字符串转化为小写的格式。2.upper(char):将子符串转化为大写的格式。3.length(char):返回字符串的长度。4.substr(char,m,n):取字符串的子串。意思是指从第m个字符开始,取n个字符5.replace(char1,search_string,replace_string):可以把需要指定的字母进行替换其中char1是指对哪一个字段进行替换,前面是要替换的字符串,后面是指定的字符串6.instr(char1,char2,[,n[,m]]):取子串在字符串的位置?将所有员工的名字按小写的方式显示SQL> select lower(ename) from emp;SQL> select lower(ename),sal from emp;?将所有员工的名字按大写的方式显示SQL> select upper(ename) from emp;SQL> select upper(ename),sal from emp;?显示正好为5个字符的员工的姓名SQL> select * from emp where length(ename)=5;?显示所有员工的名字的前三个字符SQL> select substr(ename,1,3) from emp;SQL语句的意思就是将ename这个属性从第一个字符开始截取3个字符?以首字母大写的方式显示所有员工的姓名步骤1.完成首字母大写select upper(substr(ename,1,1)) from emp;2.完成后面字母小写select lower(substr(ename,2,length(ename)-1)) from emp;3. 合并在一起SQL> select upper(substr(ename,1,1))||lower(substr(ename,2,length(ename))) from emp;?以首字母小写的方式显示所有员工的姓名步骤1.完成首字母小写select lower(substr(ename,1,1)) from emp;2.完成后面字母大写select upper(substr(ename,2,length(ename)-1)) from emp;3.合并在一起select lower(substr(ename,1,1))||upper(substr(ename,2,length(ename)-1)) from emp;?显示所有员工的姓名,用"我是A"替换所有"A"SQL> select replace(ename,'A','我是老虎') from emp;SQL> select replace(ename,'SMIT','替换') from emp;



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有