1. 程式人生 > >Oracle中的常用函式

Oracle中的常用函式

1、數值型常用函式

函式

  返回值  

樣例

 顯示

ceil(n)

大於或等於數值n的最小整數

select ceil(10.6) from dual

 11

floor(n)

小於等於數值n的最大整數

select ceil(10.6) from dual

 10

mod(m,n)

m除以n的餘數,若n=0,則返回

select mod(7,5) from dual

 2

power(m,n)

m的n次方

select power(3,2) from dual

 9

round(n,m)

將n四捨五入,保留小數點後m位

select round(1234.5678,2) from dual

 1234.57

sign(n)

若n=0,則返回0,否則,n>0,則返回1,n<0,則返回-1

 select sign(12) from dual

 1

sqrt(n)

 n的平方根

select sqrt(25) from dual

 5

 

2、常用字元函式

函式

  返回值  

樣例

 顯示

Upper(char)

整個字串換成

select Upper ('mr.ecop') from dual

Mr.Ecop

lower(char)

整個字串換成小寫 

select lower('MR.ecop') from dual

mr.ecop

Initcap

initcap(首字母變大寫)

select initcap('efg') from dual;

Efg

Trim

去掉前後空格

Select trim(  dds d  ) from dual

Dds d

Ascii

返回字串首字母的Ascii值

select ascii('abbb') from dual

97

chr

返回ascii值對應的字母

select chr(97) from dual

a

Instr(char,s)

返回s在char中的位置,不存在返回0

Select instr(abcdefg,c) from dual

3

replace(char,s1,s2)

字串中所有s1換成s2

select replace('Scott','s','Boy') from dual

Boycott

substr(char,m,n)

取出從m字元開始的n個字元的子串

select substr('ABCDEF',2,2) from dual

 BC

length(char)

求字串的長度 

select length('ACD') from dual

 3

Vsize

返回字串的所佔位元組數

Select vsize() from dual

2

Nvl(ex1,ex2)

ex1值為空則返回ex2,否則返回該值本身ex1(常用)

Select nvl(null,a) from dual

a

nvl2(ex1,ex2,ex3)

如果ex1不為空,顯示ex2,否則顯示ex3

 

 

||

並置運算子,相當於拼接  

select 'AB'||'EF' from dual

ABEF

3、日期型函式

函式

返回值 

樣例

Sysdate

當前日期和時間

select sysdate from dual

last_day

本月最後一天

select last_day(sysdate) from dual

add_months(d,n) 

當前日期d後推n個月

select add_months(sysdate,2) from dual

months_between(d,n) 

日期d和n相差月數

select months_between(sysdate,to_date('20020812','YYYYMMDD')) from dual

day 格式  有  'Monday' 星期一  'Tuesday' 星期二

'wednesday'  星期三   'Thursday' 星期四    'Friday' 星期五

'Saturday' 星期六   'Sunday' 星期日

4、特殊格式的日期型函式

Y或YY或YYY 年的最後一位,兩位,三位 select to_char(sysdate,'YYY') from dual;

Q 季度,1-3月為第一季度    select to_char(sysdate,'Q') from dual;

MM  月份數           select to_char(sysdate,'MM') from dual;

RM 月份的羅馬錶示 select to_char(sysdate,'RM') from dual; IV

month 用9個字元表示的月份名 select to_char(sysdate,'month') from dual;

ww 當年第幾周         select to_char(sysdate,'ww') from dual;

w 本月第幾周         select to_char(sysdate,'w') from dual;

DDD 當年第幾天,一月一日為001 ,二月一日032 select to_char(sysdate,'DDD') from dual;

DD 當月第幾天 select to_char(sysdate,'DD') from dual;

D 周內第幾天 select to_char(sysdate,'D') from dual; 如 sunday

DY 周內第幾天縮寫       select to_char(sysdate,'DY') from dual; 如 sun

hh12 12小時制小時數       select to_char(sysdate,'hh12') from dual;

hh24 24小時制小時數       select to_char(sysdate,'hh24') from dual;

Mi 分鐘數            select to_char(sysdate,'Mi') from dual;

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

select to_char(sysdate,'YYYY-MM-DD HH:24:mi:ss') from dua;

5

to_number() 將合法的數字字串 select to_number('88877') from dual; 88877

to_char() 將數字轉換為字串  select to_char(88877) from dual; '88877'

user 返回登入用名稱  select user from dual;