表内容
oracle字符串相关函数
lpad()左补齐 rpad()右补齐
使用指定的字符在字符的左边(右边)填充
select lpad(id,6,'0') from teacher;
upper()
返回字符串的大写格式
select upper(name) from teacher;
lower()
返回字符串的小写格式
select lower(name) from teacher;
initcap()
返回字符串的首字母大写格式
select initcap(name) from teacher;
length()
-返回字符串长度
select id,length(id),name,length(name) from teacher;
substr()
字符串截取 第一个数字是数字截取位(注意下标从1开始,与java区别) ,第二个数字是截取位数
select id,name,pwd,substr(name,2,3) from teacher; --从第2位开始,截取3位数字
select id,name,pwd,substr(name,-1,3) from teacher; --从-1位(倒数第一位开始)开始,截取三位(不是反向截取,所以只有1位)
select id,name,pwd,substr(name,-2,3) from teacher; --倒数第一位是-1,倒数第二位是-2
instr()
查找字符串第一次出现指定字符或字符串的下标位置,可以指定范围,没有返回0
--instr(指定字符串,查询内容)
select name,instr(name,'a') from teacher;
select name,instr(name,'a',3,6)from teacher;--返回从第三位到第六位中a字符串第一次出现的位置
reverse()
反转字符串
select name,reverse(name) from teacher;
concat()
字符串拼接
select name,concat('hello:',name) from teacher;
trim()、ltrim()、rtrim()
去两端空格trim()
select length(' hello java ')before,trim(' hello java '),
length(trim(' hello java '))after from dual;
去左侧空格ltrim()
去右侧空格rtrim()
replace()
字符串替换
select name,replace(name,'a','x') from teacher;--将所有的a替换为x
regexp_replace()
用正则表达式替换字符串
select name,regexp_replace(name,'a.g','x')from teacher;
oracle数值类型相关函数
round()
四舍五入函数
select round(123.456,2) from dual; ---123.46四舍五入,保留两位小数
select round(123.456) from dual; ---123四舍五入不保留小数
ceil()、floor()
向上取整函数与乡下取整函数
select ceil(123.456) from dual; --124 向上取整
select floor(123.456) from dual; --123 向下取整
mod()
求模函数
select mod(32,7) from dual; --4
abs()
绝对值函数
select abs(128) from dual; --128
sign()
判断数值正负或0,整数返回1,负数返回-1,0返回0
select sign(0) from dual; --0
select sign(12) from dual; --1
select sign(-12) from dual; -- -1
sqrt()
开平方根
select sqrt(4) from dual; --2
trunc()
保留几位小数
select trunc(1234.5678,3) from dual; --1234.567
to_char()
将其他数据类型转换为字符串,可以是数值类型,也可以是日期时间类型
select to_char(1234.453,'0,000.00')数字类型,
to_char(sysdate,'YYYY-MM-dd HH24:mi:ss')时间类型 from dual;
–如果转后的字符串小数部分少于原有的位数,进行四舍五入,如果整数部分少于原有位数,则乱码
oracle时间类型相关函数
sysdate
获取当前系统日期和时间
select sysdate from dual;
systimestamp
获取更精确的系统日期和时间,加上时区
select systimestamp from dual;
add_month()
增加指定个月
select d1,add_months(d1,1) from t_date where id=1;
last_day()
返回当月最后一天
select d1,last_day(add_months(d1,1)) from t_date where id=1;
trunc()
日期截取(啥都不填默认按天)
select trunc(sysdate),sysdate from dual;
select trunc(sysdate,'yyyy'),sysdate from dual;
to_timestamp()
字符串转换为日期
select to_timestamp('2022-1-20 14:20:30','yyyy-MM-dd HH24:mi:ss')after from dual;