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

本文详细介绍了数据库中的数值函数如round、trunc、ceil、floor等及其应用案例,并阐述了时间函数如to_date、to_char、last_day等的使用方法。此外还探讨了NULL值的处理方式及NVL、NVL2函数的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在之前的博客中已经讲解了关于字符串的数值操作,本博文主要讲述关于数值函数以及时间函数。
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值