您的位置:首页技术文章
文章详情页

Oracle单行函数(字符,数值,日期,转换)

【字号: 日期:2023-09-15 20:49:40浏览:4作者:猪猪
目录Oracle单行函数(字符,数值,日期,转换)1、字符函数接收字符输入返回字符或者数值,dual 是伪表1.1大小写转换函数1.2连接字符串X和concat(X,Y)1.3ASCII码与字符转换1.4返回字符串索引位置:instr(x,str)1.5返回字符串长度:length()1.6字符串替换:replace(X,old,new)2、数值函数2.1四舍五入函数:round()2.2直接截取函数:trunc()2.3求余数函数:mod()2.4取绝对值:abs()2.5大于x最近的整数值,或本身:ceil()2.6小于x最近的整数值,或本身:floor()2.7X的Y次幂:power(X,Y)3、日期函数4、转换函数4.1日期转字符串:to_char()4.2字符串转日期:to_date()---字符串转日期5、通用函数:nvl()Oracle单行函数(字符,数值,日期,转换)1、字符函数接收字符输入返回字符或者数值,dual 是伪表1.1大小写转换函数---1. 把小写的字符转换成大小的字符select upper('yes') from dual; 结果:YES---2. 把大写字符变成小写字符select lower('YES') from dual; 结果:yes1.2连接字符串X和concat(X,Y)select CONCAT('abc','efg') from dual; 结果:abcefg1.3ASCII码与字符转换--ASCII(x)返回字符X 的ASCII码select ASCII('a') from dual; 结果:97--CHR(x)接收一个ASCII码 返回一个字符select CHR(65) from dual; 结果:A1.4返回字符串索引位置:instr(x,str)

索引从1开始

select INSTR('abcefg123','123') from dual; 结果:71.5返回字符串长度:length()select LENGTH('abcefg123') from dual; 结果:91.6字符串替换:replace(X,old,new)--REPLACE(X,old,new)在X中查找old,并替换成newselect REPLACE('abc882388','88','666') from dual; 结果:abc66623666

1.6字符截取:substr(str,start,lenth)

--REPLACE(X,old,new)在X中查找old,并替换成new--返回X的字串,从start处开始,截取length个字符,缺省length,默认到结尾select SUBSTR('abcdefg', 4, length('abcdefg')) from dual;结果:defg2、数值函数2.1四舍五入函数:round()---1. 四舍五入函数:ROUND()---默认情况下 ROUND 四舍五入取整,可以自己指定保留的位数。---保留位数为负数,即往前保留几位数select round(26.16 ) from dual; 结果:26select round(26.16, 1) from dual; 结果:26.1select round(26.16, -1) from dual; 结果:30select round(26.16, -2) from dual; 结果:0select round(56.16, -2) from dual; 结果:1002.2直接截取函数:trunc()---直接截取,不在看后面位数的数字是否大于5.select trunc(56.56 ) from dual; 结果:56select trunc(56.16, 1) from dual; 结果:56.1select trunc(56.16, -1) from dual; 结果:502.3求余数函数:mod()---求余数select mod(10, 3) from dual; 结果:12.4取绝对值:abs()select abs(-1) as a from dual; 结果:12.5大于x最近的整数值,或本身:ceil()select CEIL(3.00001) as a from dual;  结果:42.6小于x最近的整数值,或本身:floor()select FLOOR(2.9999999) as a from dual;   结果:22.7X的Y次幂:power(X,Y)select POWER(3,4) as a from dual;  结果:813、日期函数

Oracle 中提供了很多和日期相关的函数,包括日期的加减,在日期加减时有一些规律日期 – 数字 = 日期日期 + 数字 = 日期日期 – + 日期 = 数字 (可直接加减,单位是天)

----查询出emp表中所有员工入职距离现在几天。select sysdate-e.hiredate from emp e; 结果:以天为单位的小数----算出明天此刻select sysdate+1 from dual; 结果:2020/12/4 16:35:36----查询出emp表中所有员工入职距离现在几月。select months_between(sysdate,e.hiredate) from emp e; 结果:以月为单位的小数----查询出emp表中所有员工入职距离现在几年。select months_between(sysdate,e.hiredate)/12 from emp e; 结果:以年为单位的小数----查询出emp表中所有员工入职距离现在几周。select round((sysdate-e.hiredate)/7) from emp e; 结果:以周为单位的小数4、转换函数4.1日期转字符串:to_char()---日期转字符串select to_char(sysdate, 'yyyy-mm-dd hh:mi:ss') from dual;结果:2020-12-04 05:18:03 12小时有0select to_char(sysdate, 'fm yyyy-mm-dd hh:mi:ss') from dual; 结果:2020-12-4 5:18:32 12小时无0select to_char(sysdate, 'fm yyyy-mm-dd hh24:mi:ss') from dual; 结果: 2020-12-4 17:18:47 24小时无0可以使用 TO_CHAR 函数来拆分年月日select empno,ename to_char(hiredate,'yyyy') 年, to_char(hiredate,'mm') 月, to_char(hiredate,'dd') 日from emp;

select empno,ename to_char(hiredate,'yyyy-mm-dd') 日from emp;

to_char(number,‘L999,999.99’)

L代表货币符号,代表千位数分隔符.代表小数位分隔符

select to_char(123456.99,'L999,999.99') from dual; 结果: $123,456.994.2字符串转日期:to_date()---字符串转日期select to_date('2020-12-4 17:18:47', 'fm yyyy-mm-dd hh24:mi:ss') from dual;5、通用函数:nvl()---算出emp表中所有员工的年薪(奖金+12个月 月薪)select e.sal*12 from emp e; 结果:12个月 月薪---奖金里面有null值,如果null值和任意数字做算术运算,结果都是null。select e.sal*12+e.comm from emp e; 结果:有员工结果为空---如果 e.comm 为空,则正常相加;e.comm 为 null,则用 0取代 e.commselect e.sal*12+nvl(e.comm, 0) from emp e; 结果:正常查询员工年薪

到此这篇关于Oracle单行函数(字符,数值,日期,转换)的文章就介绍到这了,更多相关Oracle单行函数内容请搜索好吧啦网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好吧啦网!

标签: Oracle 数据库
相关文章: