Oracle内置函数整理


日期函数类型

输入

输出

to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual

2019-10-30 16:52:22

to_char(sysdate,'yyyy')

select to_char(sysdate,'yyyy') from dual

2019

to_char(sysdate,'yy')

select to_char(sysdate,'yy') from dual

19

to_char(sysdate,'mm')

select to_char(sysdate,'mm') from dual

10

to_char(sysdate,'dd')

select to_char(sysdate,'dd') from dual

30

to_char(sysdate,'hh')

select to_char(sysdate,'hh') from dual

04

to_char(sysdate,'hh24')

select to_char(sysdate,'hh24') from dual

16

to_char(sysdate,'mi')

select to_char(sysdate,'mi') from dual

53

to_char(sysdate,'ss')

select to_char(sysdate,'ss') from dual;

57

to_char(sysdate,'cc')

select to_char(sysdate,'cc') from dual;

21(世纪)

to_char(sysdate,'q')

select to_char(sysdate,'q') from dual;

1(季度)

to_char(int, text)

select to_char(125, '999999') from dual

125

to_char(sysdate,'day')

select to_char(sysdate,'day') from dual

星期几

to_char(sysdate,'d')

select to_char(sysdate,'d') from dual

一周的第几天(周天是第一天)

to_char(sysdate,'DDD')

select to_char(sysdate,'ddd') from dual

年内天

TO_CHAR(SYSDATE,'YEAR','NLS_DATE_LANGUAGE=AMERICAN')

twenty nineteen

转英文

to_char(sysdate,'iw')

select to_char(sysdate,'iw') from dual

年内周

months_between(date,date)

select months_brtween(sysdate,)

俩个日期相差几个月

add_months(date,n)

select add_months(sysdate,3) from dual

当前日期加上3个月的时间

next_day(date,string)

select next_day(sysdate,2) from dual

下一个周1的日期(1-7,分别代表周日到周六)

last_day(date)

select last_day(sysdate) from dual

当前日期月末一天日期(最后一天日期)

TO_CHAR(SYSDATE,'MONTH')

SELECT TO_CHAR(SYSDATE,'MONTH') FROM DUAL

OCTOBER (十月)

TRUNC(SYSDATE,'year')

SELECT TRUNC(SYSDATE,'YEAR') FROM DUAL

本年的第一天

TRUNC(SYSDATE,'q')

SELECT TRUNC(SYSDATE,'MONTH') FROM DUAL

本季度的第一天

TRUNC(SYSDATE,'month')

2019/10/1 星期二

本月的第一天

TRUNC(SYSDATE-1,'w')

2019/10/29 星期二

离当前时间最近的周四

TRUNC(SYSDATE,'day')

2019/10/27 星期日

即上周日

TRUNC(SYSDATE,'iw')

2019/10/28 星期一

本周一

 

字符型单行函数

输入

输出

lower(column|expression)

select lower('HELLO WORD') from dual

hello word(转小写)

upper(column|expression)

select upper('hello word') from dual

HELLO WORD(转大写)

initcap(column|expression)

select initcap('hello word') from dual

Hello Word(首字母大写)

concat(column1,column2)

select concat('hello','word') from dual

helloword(拼接)

substr(column|expression,m[,n])

select substr('helloword',4,2) from dual

lo(截取)

length(column|expression)

select length('hello word') from dual

10(计算长度)

instr(column|expression,'string',[,m],[n])

select instr('struggle for a brtter future','for') from dual

10(字符查找函数)

lapd|rpad(column|expression,n,'string')

select lapd(sal,10,'*' ) from emp

sal为列名,10表示输出结果需要10个字符,不够用*补充

trim(leading|trailing|both,trim_character from trim_source)

select trim('h' from 'helloword') from dual

elloword(替换任意字符串)

trim

 

去空格(也可以replace替换)

replace(text,search_string,replacement_string)

select replace('hello word','word','boy') from dual

hello boy

数字型单行函数

输入

输出

round(column/expression,n)

select round(3.1415926,3) from dual

3.142(四舍五入)

round(column/expression,n)参数n为负数

select round(-3.1415926,3) from dual

-3.142

trunc(column/expression,n)

select trunc(3.1415926,3) from dual

3.141(截取或者定位日期/不使用四舍五入规则)

trunc(column/expression,n)参数n为负数

select trunc(-3.1415926,3) from dual

3.141

mod(m,n)够除

select mod(1000,300) from dual

100

mod(m,n)不够除

select mod(100,500) from dual

100

日期型单行函数

输入

输出

sysdate

select sysdate from dual;

当天的日期时间

months_between(date,date)

select months_brtween(sysdate,)

俩个日期相差几个月

add_months(date,n)

select add_months(sysdate,3) from dual

当前日期加上3个月的时间

next_day(date,string)

select next_day(sysdate,2) from dual

下一个周2的日期

last_day(date)

select last_day(sysdate) from dual

当前日期月末一天日期

空值处理函数

输入

输出

nvl(expr1,expr2)

select nvl('',4) from dual;

4

nvl2(expr1,expr2,expr3)

select nvl2('',6,3) from dual;

6

nullif(expr1,expr2)

相等返回空值NULL,不等返回expr1

select nullif(2,3) from dual

2

coalesce(expr1,expr2,......,exprn)

返回第一个不为NULL的表达式的值

select coalesce(9,3) from dual

9

replace

SELECT REPLACE(11,1,2) FROM DUAL

22(替换)

trim

去除空格

 
   

LISTAGG函数,代替wm_concat

trim 去除空格

字符串中某个字符出现的次数:LENGTH('fdgpfgpp') - LENGTH(REPLACE('fdgpfgpp','p',''))

lead(value,1,null) over(order by ):向上偏移

lag(value,1,null)over(order by ) :向下偏移--也可以加上 partition by

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值