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;