ORACLE常用函数总结

本文介绍了 Oracle SQL 中常用的函数,包括 nvl、nullif、coalesce、nvl2 和 mod 等处理空值的方法,to_date 和 to_number 的类型转换技巧,trunc 在日期和数字处理上的应用,以及 substr 和 add_months 在字符串操作和日期计算方面的实用案例。

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

时常忘记,但是用得十分频繁
nvl:nvl(exp1,exp2)exp1为null,返回exp2,exp1不为null,返回exp1
主要用户转换null值
nullif:nullif(exp1,exp2)exp1=exp2,返回空,不等返回exp1
coalesce:coalesce(exp1,exp2,exp3,....)返回列表中第一个非空表达式
nvl2:nvl2(exp1,exp2,exp3)exp1不为空,返回exp2,exp1为空,返回exp3
mod:求余数,刚才写一段plsql,不记得这个函数,准备自己实现一个,郁闷
to_date:转换日期
to_number:转换数字
trunc:
--Oracle trunc()函数的用法
/**************日期********************/
1.select trunc(sysdate) from dual --2011-3-18 今天的日期为2011-3-18
2.select trunc(sysdate, 'mm') from dual --2011-3-1 返回当月第一天.
3.select trunc(sysdate,'yy') from dual --2011-1-1 返回当年第一天
4.select trunc(sysdate,'dd') from dual --2011-3-18 返回当前年月日
5.select trunc(sysdate,'yyyy') from dual --2011-1-1 返回当年第一天
6.select trunc(sysdate,'d') from dual --2011-3-13 (星期天)返回当前星期的第一天
7.select trunc(sysdate, 'hh') from dual --2011-3-18 14:00:00 当前时间为14:41
8.select trunc(sysdate, 'mi') from dual --2011-3-18 14:41:00 TRUNC()函数没有秒的精确
/***************数字********************/
/*
TRUNC(number,num_digits)
Number 需要截尾取整的数字。
Num_digits 用于指定取整精度的数字。Num_digits 的默认值为 0。
TRUNC()函数截取时不进行四舍五入
*/
9.select trunc(123.458) from dual --123
10.select trunc(123.458,0) from dual --123
11.select trunc(123.458,1) from dual --123.4
12.select trunc(123.458,-1) from dual --120
13.select trunc(123.458,-4) from dual --0
14.select trunc(123.458,4) from dual --123.458
15.select trunc(123) from dual --123
16.select trunc(123,1) from dual --123
17.select trunc(123,-1) from dual --120
substr:截取字符串
add_months:
oracle add_months(time,months)函数可以得到某一时间之前或之后n个月的时间

如 select add_months(sysdate,-6) from dual;

该查询的结果是当前时间半年前的时间

select add_months(sysdate,6) from dual;

该查询的结果是当前时间半年后的时间

select distinct(t.mobile) from twaplogon t where to_char(t.logontime,'yyyy-mm')=to_char(add_months(sysdate,-1),'yyyy-mm')

Instr(char, search_string, startpos, occurrence):返回截取字符串在源串的位置

cast:
rpad:
lengthb:
unistr:
hextoraw:
rawtohex:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值