oracle中常见函数用法

常见函数用法

1.NVL函数

定义:从两个表达式返回一个非 null 值。

语法:NVL(eExpression1, eExpression2)
如果 eExpression1 的计算结果为 null 值,则 NVL( ) 返回 eExpression2。如果 eExpression1 的计算结果不是 null 值,则返回 eExpression1。eExpression1 和 eExpression2 可以是任意一种数据类型。如果 eExpression1 与 eExpression2 的结果皆为 null 值,则 NVL( ) 返回 NULL。

返回值类型:字符型、日期型、日期时间型、数值型、货币型、逻辑型或 null 值
说明:在不支持 null 值或 null 值无关紧要的情况下,可以使用 NVL( ) 来移去计算或操作中的 null 值。
select nvl(a.name,‘空得’) as name from student a join school b on a.ID=b.ID

注意:两个参数得类型要一致。

2.last_day()

定义:返回指定日期所在月份的最后一天;

2.1查询当前月份的最后一天:
select  last_day(sysdate) from dual;
2.2查询某天所在月份的最后一天:
select  last_day(to_date('1992-10-09','yyyy-mm-dd')) from dual;
2.3查询当前时间,当前月的最后一天,距离这个月还有多少天:
 SELECT SYSDATE,
 		LAST_DAY(SYSDATE) "Last",
        LAST_DAY(SYSDATE) - SYSDATE "Days Left"
 FROM DUAL;

3.add_months(times,months)

3.1查询当前时间1个月以前的时间:
select add_months(sysdate,-1) from dual;
3.2查询当前时间1个月以后的时间:
select add_months(sysdate,1) from dual;

4.initcap()

4.1.首字母转大写之后的小写
select initcap(abcd) from dual;  --结果为Abcd;

5substr(string string, int a, int b)

substr("ABCDEFG", 0); //返回:ABCDEFG,截取所有字符 
substr("ABCDEFG", 2); //返回:CDEFG,截取从C开始之后所有字符 
substr("ABCDEFG", 0, 3); //返回:ABC,截取从A开始3个字符 
substr("ABCDEFG", 0, 100); //返回:ABCDEFG,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。 
substr("ABCDEFG", -3, 3); //返回:EFG,注意参数-3,为负值时表示从尾部开始算起,字符串排列位置不变。 

6.to_date和to_char用法总结

6.1.to_char用法

1.语法:to_char(日期,'日期格式‘)
2.作用:将日期通过指定格式进行字符串转换,转换成字符串类型

将当前系统时间转换成(yyyy-mm-dd hh:mi:ss day)格式。
select to_char(sysdate , 'yyyy-mm-dd hh:mi:ss day') from dual;

在这里插入图片描述

把hiredate列看做是员工的生日,查询本月过生日的员工(考察知识点:单行函数)
select * from employees where to_char(hire_date,'mm')=to_char(sysdate,'mm');

在这里插入图片描述

6.2.to_date用法

1.语法:to_date(字符串,'日期格式’)
2.用法:将字符串通过指定格式进行日期转换,转换成日期类型

将和日期兼容的字符串按照(yyyy-mm-dd hh24:mi:ss:ff day)转换成日期。
select to_date('19950101','yyyy-mm-dd')  as time from dual;

在这里插入图片描述

查询入职日期在1997-5-11997-12-31之间的所有员工信息:
select * from emp where to_date('1997-5-1','yyyy-mm-dd')<hiredate 
and to_date('1997-12-31','yyyy-mm-dd')>hiredate;
6.3.打印自己出生了多少天
select to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy/mm/dd')-to_date('1996/10/16','yyyy/mm/dd') from dual;
6.4计算出生那天星期几
select to_char(to_date('1990/03/01','yyyy/mm/dd'),'yyyy-mm-dd day') from dual;//星期四
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值