您的位置:首页 > 数据库

数据库内置函数2-数值函数,时间函数,null函数

2017-11-16 20:07 218 查看
在之前的博客中已经讲解了关于字符串的数值操作,本博文主要讲述关于数值函数以及时间函数。

1.数值函数

(1)round(m,n)

该函数主要功能就是将m的值进行四舍五入,那么n代表什么意思呢???在数据库理论中,我们把个位作为0,左边是负数递减,右边是正数递增,好比是一个坐标,左边负坐标,右边是正坐标,例子如下:

select round(12347.5678,2) from dual;
select round(12347.5678,0) from dual;
select round(12347.5678,-2) from dual;


(2)trunc(m,n)

该函数的主要功能就是截取m的数字n的位数,也就像四舍五入方法,只不过已经失去了四舍五入的功能,主要方法如下:

select trunc(12347.5678,2) from dual;
select trunc(12347.5678,0) from dual;
select trunc(12347.5678,-2) from dual;


(3)ceil(m)

该函数的主要功能就是向上取整,就是说,寻找大于m的最小整数,其示例如下:

select ceil(12.25) from dual


(4)floor(m)

该函数与上面函数是”兄弟关系“,主要功能就是向下取整,换一句话说就是寻找小于m的最小整数,其示例如下表示:

select floor(12.25) from dual


2.时间函数

(1)to_date(str1,str2)

该函数的主要功能就是str1字符串按照str2模式进行转换,使其转换成date数据类型,另外str2需要按照“YYYY(注:年)-MM(注:月)-DD(注:日) HH12:(时(12小时制,还有24小时制:HH24)):MI(注:分)-SS(注:秒)”主要示例如下所示:

select TO_DATE('2008-11-20','YYYY-MM-DD') from dual


(2)to_char(date1,str2)

该函数主要功能就是将date数据类型转化为varchar类型,也就是date1()按照str2的格式转化为相应字符串,格式如下

注意:str2中如果是汉字,则需要括上双引号

select TO_CHAR(sysdate,'YYYY"年"MM"月"DD"日" HH24"时"MI"分"SS"秒"') from dual


(3)last_day(date)

该函数的主要功能就是返回本月最后一天所代表的日期;示例如下:

select LAST_DAY(sysdate) from dual


(4) add_months(date.i)

该函数主要功能就是求取date加上i月之后的日期,示例如下所示:

select add_months(sysdate,3) from dual


(5)months_between(date1.date2)

该函数主要功能就是求出date1和date2之间的天数,其示例如下所示:

select months_between(sysdate,TO_DATE('2017-11-6','YYYY-MM-DD')) from dual


(6)next_day(date.char)

该函数主要功能就是从date那天开始,求出在char所代表星期下,char所代表的星期从1开始,并且根据美国人的习惯,新的一周始于周日所以1代表周日,2代表周一,………………以此类推,7代表周日,其示例如下所示:

select next_day(sysdate,7) from dual


(7)extract(char1 from date)

该函数主要功能就是从date中获取指定值,char1可以是year,month,day示例如下所示:

select extract(year from sysdate) from dual;
select extract(month from sysdate) from dual;
select extract(day from sysdate) from dual;


3.null

NULL即是空,空即是NULL

数据库中默认值都是NULL

显示插入:insert into student(id,name,gender) values(1001,’jerry’,’null’);

隐式插入:insert into student(id,name) values(1001,’jerry’);

Null在where条件中判断不能用= 只能用is 或者is not

但是赋值语句可以用=将null复制给字段属性

设置非空约束的时候,不能将该字段进行更新或者插入为空

NULL和任何字符串连接 相当于什么也没做

NULL和任何数字操作都是null

(1)Nvl(arg1,arg2):

该函数主要功能就是如果arg1不是空值时就输出arg1,否则就输出arg2,其主要示例如下所示:

select nvl(comm,0) from o_myemp


(2)NVL2(arg1,arg2.arg3)

该函数主要功能就是如果arg1不是空值就返回arg2,否则返回arg3,其示例如下所示:

select nvl2(comm,0,1) from o_myemp;


注意:NVL不能替换NVL2,但NVL2可以替换nvl2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 函数