1.字符串操作函数:
concat只能连接两个字符,而“||”可以连接多个字符。
格式1: substr(string string, int a, int b); 1、string 需要截取的字符 2、a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取 3、b 要截取的字符串的长度
格式2:substr(string string, int a) ; 1、string 需要截取的字符串 2、a 可以理解为从第a个字符开始截取后面所有的字符串。
instr函数返回要截取的字符串在源字符串中的位置。只检索一次
lpad函数将左边的字符串填充一些特定的字符,rpad函数将右边的字符串填充一些特定的字符
TRIM函数的作用可以去除字符串的空格
2.数字操作函数:
Round(exp1,exp2)函数具有四舍五入的功能,分为以下两种情况:
1.exp2数为非负
四舍五入的位数从小数点后开始计数,小数点后|exp2|位,看後一位,进本位,后面舍去
select Round(125.455,0) from dual ---125
select Round(125.455,1) from dual ---125.5
select Round(125.455,4) from dual ---125.455 大于小数位数,其余的位数补0将不显示
2.exp2数为负
四舍五入的位数从小数点前开始计数,小数点前|exp2|位,看本位,进前一位,本位以及后面取0
select Round(125.455,-1) from dual ---130
select Round(125.455,-2) from dual ---100
select Round(125.455,-3) from dual ---0
select Round(125.455,-4) from dual ---0
oracle中的trunc()函数是对时间类型或者数字进行截取操作的:
一般用法为trunc(Date,“fmt”),其中fmt 是我们要展示的时间字段,或者trunc(number),该函数表示取整。
trunc(number)的用法一般有以下几种:
trunc(55.5,-1) = 50;//-1(负数)表示从小数点左边第一位截取后面全置为零;
trunc(55.55,1) = 55.5;//1(正数)表示小数点后面保留一位;
trunc(55.55) = 55;//截取整数部分;默认小数点后保留0位
trunc 函数可用于截取日期时间
用法:trunc(字段名,精度)
具体实例:
在表table1中,有一个字段名为sysdate,该行id=123,日期显示:2016/10/28 15:11:58
trunc(sysdate,'yyyy');//返回当前年的第一天
trunc(sysdate, 'mm');//返回当前月的第一天
trunc(sysdate, 'dd');//返回当前时间的年月日
trunc(sysdate, 'd');//返回当前星期的第一天
trunc(sysdate, 'hh');//返回当前小时
1、截取时间到年时,sql语句如下:
select trunc(sysdate,'yyyy') from table1 where id=123; --yyyy也可用year替换
显示:2016/1/1
2、截取时间到月时,sql语句:
select trunc(sysdate,'mm') from table1 where id=123;
显示:2016/10/1
3、截取时间到日时,sql语句:
select trunc(sysdate,'dd') from table1 where id=123;
显示:2016/10/28
4、截取时间到小时时,sql语句:
select trunc(sysdate,'hh') from table1 where id=123;
显示:2016/10/28 15:00:00
5、截取时间到分钟时,sql语句:
select trunc(sysdate,'mi') from table1 where id=123;
显示:2016/10/28 15:11:00
oracle中取余是用函数mod(m,n),其中m和n都是数字:
SELECT MOD(1200, 500) FROM dual
因为1200/500结果为2余200,所以输出结果:200
SELECT MOD(1200, 0) FROM dual
3.日期操作函数:
1.sysdate
用途:获取当前系统时间。
2.to_date('字符类型','日期类型')
用途:将字符类型转化成日期类型的函数,主要用于插入、查询和修改。
3.to_char('日期类型','字符类型')
用途:将日期类型转换为字符类型的函数,主要用于查询,也可以进行删除使用。
1.sysdate
没啥好说的,使用非常简单。
2.to_date('字符类型','日期类型')
我们使用scott用户自带的表给大家介绍该函数的使用。先给大家介绍第一种使用方法。to_date用于插入数据:
--插入数据
insert into emp(empno,hiredate) values(8888,'1991-09-22');
commit; --错误写法
这是一个错误写法,因为插入的数据类型是字符类型,不是我们要的日期类型,需要将字符类型转换为日期类型。看下面的改进姿势:
insert into emp(empno,hiredate) values(8888,to_date('1991-09-22','yyyy-mm-dd'));
commit; --正确写法
查看运行结果:
如果,觉得插入的日期不够爽,可以增加时分秒比如:好好hh24:mi:ss
insert into emp(empno,hiredate) values(8889,to_date('1991-09-22 22:18:23','yyyy-mm-dd hh24:mi:ss'));
commit; --正确写法
插入成功后,我们看下插入后的结果:
第二种,使用to_date进行查询数据
--查找数据
select * from emp where hiredate=to_date('1981-2-22','yyyy-mm-dd')
查询结果如下:
第三种,使用to_date进行修改数据
--修改数据
update emp set hiredate=to_date('1981-12-20','yyyy-mm-dd') where empno=7499;
查看修改后的结果:
3.to_char('日期类型','字符类型')
第一种:使用to_char进行查询,hiredate的数据被修改。
--查询数据
select * from emp where to_char(hiredate,'yyyy')=1991;
查看结果:
第二种:使用to_char进行删除操作,删除dd=3的日期,
--删除数据
select * from emp where to_char(hiredate,'dd')=3;
温馨提示:to_char不可以用来做修改。用的比较多的就是查询和删除数据。
4.数据类型转换
TO_CHAR() 函数:日期到字符串的转换
TO_DATE() 函数:字符串到日期的转换
TO_NUMBER() 函数:字符串到数字的转换: