select substr(‘thinking in java’,10) from dual;
select substr(‘thinking in java’,10,100) from dual;
–数字函数:
round 函数:四舍五入
参数2表示保留到小数点后多少位,0则是保留到
整数位,负数则是10位以上的单位。
select round(45.678,2) from dual;
select round(45.678,0) from dual;
select round(55.678,-2) from dual;
trunc 函数:截取数字
参数2表示保留到小数点后多少位,0则是保留到
整数位,负数则是10位以上的单位。
select trunc(45.678,2) from dual;
select trunc(45.678,0) from dual;
select trunc(55.678,-1) from dual;
mod() 求余
select mod(11,3) from dual;
ceil 、floor 函数
向上取整、向下取整
select ceil(45.678) from dual;
select floor(45.678) from dual;
–日期类型:
date 与 timestamp
date :表示日期,精度到秒,7个字节分别表示世纪年月日时分秒
timestamp 时间戳:表示日期,精度到纳秒,前7个字节与date一致
,后4个字节记录纳秒以下的精度
select sysdate from dual;
select systimestamp from dual;
–日期的计算
数据库中,日期是可以计算的,对一个日期类型的值加上一个指定的
数字,等于加上了指定的天数,返回的日期是计算后的日期,减去也同理。
两日期类型的值相减,差是相差的天数。
日期越晚的越大。
查看每个员工到今天为止入职多少天?
select sysdate-hiredate from emp;
在日期格式字符串中,除了英文与符号外的其他字符,都应当使用双引号括起来
select to_date(‘2008年08月8日 20:08:08’,
‘YYYY"年"MM"月"DD"日" HH24:mi:ss’
) from dual;
to_char 函数:
将指定的日期安照指定的日期格式转换为字符串
select ename,to_char(hiredate,‘YYYY-MM-DD’) from emp;
RR 是2位数字表示的年的日期格式的关键字
RR与YY的区别在于,RR会根据当前系统时间自动判定世纪
select to_char(to_date(‘99-12-01’, ‘RR-MM-DD’), ‘yyyy-MM-DD’) from dual;
根据自己的生日计算到今天为止,共活了多少天?
select sysdate-to_date(‘1992-08-03’,‘yyyy-MM-dd’) from dual;
LAST_DAY()函数:
返回给定日期所在月的月底
select last_day(sysdate) from dual;
add_month() 函数:
对指定的日期加上指定的月数
select ename,add_months(hiredate,3) from emp;
months_between(date1,date2)函数:
计算两个日期之间相差的月数,计算是用date1-date2的结果换算的
select months_between(sysdate, to_date(‘2018-01-01’, ‘yyyy-MM-DD’))
from dual;
查看每个员工至今入职多少月?
select ename,months_between(sysdate,hiredate) from emp;
next_day(date,i)
返回的是距离给定的date最近的还没有过的周几
返回给定日期之后一周内的周几
数字表示周几时使用1-7之间的数字。
1表示周日,2表示周一,以此类推。
select next_day(sysdate,1) from dual;
–null值:
create table student_t(
id number(4),
name char(20),
gender char(1)
);
insert into student_t values(1000,‘李莫愁’,‘F’);
insert into student_t values(1001,‘林平之’,null);
insert into student_t(id,name) values(1002,‘张无忌’);
select * from student_t
更新null值
update student_t
set gender = null;
判断null条件
要使用 is null 或 is not null 判断
update student_t set gender = ‘M’ where gender is null;
null的计算
null 与字符串拼接等于什么都没做
null 与任何数字计算结果还是 null
select ename,sal,comm,sal+comm from emp;
select ‘aaa’||null from dual;
–空值函数
nvl(p1,p2)
若p1的值是 null 则函数返回p2,否则返回 p1
select ename,sal,comm,sal+nvl(comm,0) from emp
总结
就写到这了,也算是给这段时间的面试做一个总结,查漏补缺,祝自己好运吧,也希望正在求职或者打算跳槽的 程序员看到这个文章能有一点点帮助或收获,我就心满意足了。多思考,多问为什么。希望小伙伴们早点收到满意的offer! 越努力越幸运!
金九银十已经过了,就目前国内的面试模式来讲,在面试前积极的准备面试,复习整个 Java 知识体系将变得非常重要,可以很负责任的说一句,复习准备的是否充分,将直接影响你入职的成功率。但很多小伙伴却苦于没有合适的资料来回顾整个 Java 知识体系,或者有的小伙伴可能都不知道该从哪里开始复习。我偶然得到一份整理的资料,不论是从整个 Java 知识体系,还是从面试的角度来看,都是一份含技术量很高的资料。
伴们早点收到满意的offer! 越努力越幸运!**
金九银十已经过了,就目前国内的面试模式来讲,在面试前积极的准备面试,复习整个 Java 知识体系将变得非常重要,可以很负责任的说一句,复习准备的是否充分,将直接影响你入职的成功率。但很多小伙伴却苦于没有合适的资料来回顾整个 Java 知识体系,或者有的小伙伴可能都不知道该从哪里开始复习。我偶然得到一份整理的资料,不论是从整个 Java 知识体系,还是从面试的角度来看,都是一份含技术量很高的资料。
[外链图片转存中…(img-SYVSF1LL-1714720538196)]