Oracle常用函式

2021-06-11 07:58:33 字數 4502 閱讀 6946

1. 日期函式

(1) months_between(date1, date2):算date1和date2之間的月的數量,可以是小數可以是負數

比如:months_between(『01-sep-95』,』11-jan-94』) = 1.9774194

(2) add_months(date, n):為date加上n個月,n只可以是整數

比如:next_date(『01-sep-95』,』friday』)=08-sep-95

(4) last_day(date): 查詢date月的最後一天

(5) rount(date):把日期四捨五入

比如:rount(25-may-95』,』month』)=01-jun-95

rount(25-may-95』,』year』)=01-jan-95

(6) trunc(date):把日期截斷

比如:trunc (25-may-95』,』month』)=01-may-95

trunc (25-may-95』,』year』)=01-jan-95

(7) to_date函式的小問題

當省略hh、mi和ss對應的輸入引數時,oracle使用0作為default值。如果輸入的日期資料忽略時間部分,oracle會將時、分、秒部分都置為0,也就是說會取整到日。同樣,忽略了dd引數,oracle會採用1作為日的預設值,也就是說會取整到月。但是,不要被這種「慣性」所迷惑,如果忽略mm引數,oracle並不會取整到年,取整到當前月。

sql> alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';

會話已更改。

sql> select to_date('2006-05-01 19:25:34', 'yyyy-mm-dd hh24:mi:ss') from dual;

2006-05-01 19:25:34

sql> select to_date('2006-05-01 19:25', 'yyyy-mm-dd hh24:mi') from dual;

2006-05-01 19:25:00

sql> select to_date('2006-05-01 19', 'yyyy-mm-dd hh24') from dual;

2006-05-01 19:00:00

sql> select to_date('2006-05-01', 'yyyy-mm-dd') from dual;

2006-05-01 00:00:00

sql> select to_date('2006-05', 'yyyy-mm') from dual;

2006-05-01 00:00:00

sql> select to_date('2006', 'yyyy') from dual;

2006-05-01 00:00:00

2. 數學函式

(1) round:四捨五入

比如:round(2.566,2)=2.57

round(45,-1)=50

(2) trunc: 截斷

比如:trunc(2.566,2)=2.56

trunc(45,-1)=40

(3) 取整函式

1) 取整(大)

select ceil(-1.001) value from dual

2) 取整(小)

select floor(-1.001) value from dual

3) 取整(擷取)

select trunc(-1.002) value from dual

4) 取整(捨入)

select round(-1.001) value from dual

(4) abs():返回n的絕對值

(5) acos():反餘玄函式,返回-1到1之間的數

(6) asin():反正玄函式,返回-1到1,n表示弧度

(7) atan():反正切函式,返回n的反正切值,n表示弧度。

(8) ceil():返回大於或等於n的最小整數。

(9) cos():返回n的餘玄值,n為弧度

(10) cosh():返回n的雙曲餘玄值,n 為數字。

(11) exp():返回e的n次冪,e=2.71828183.

(12) floor():返回小於等於n的最大整數。

(13) ln():返回n的自然對數,n必須大於0

(14) log(,):返回以n1為底n2的對數

(15) mod():返回n1除以n2的餘數,

(16) power(,):返回n1的n2次方

(17) round(,):返回捨入小數點右邊n2位的n1的值,n2的預設值為0,這回將小數點最接近的整數,如果n2為負數就捨入到小數點左邊相應的位上,n2必須是整數。

(18) sin():返回n的正玄值,n為弧度。

(19) sinh():返回n的雙曲正玄值,n為弧度。

(20) sqrt():返回n的平方根,n為弧度

(21) tan() :返回n的正切值,n為弧度

(22) tanh():返回n的雙曲正切值,n為弧度

(23) trunc(,):返回截尾到n2位小數的n1的值,n2預設設定為0,當n2為預設設定時會將n1截尾為整數,如果n2為負值,就截尾在小數點左邊相應的位上。

3. 字元函式

(1) lower: 把字元轉成小寫

(2) upper: 把字元轉成大寫

(3) initcap: 把單詞的第乙個字母變成大寫

(4) concat: 連線字元

concat(『good』,』morning』) = goodmoring

(5) substr (column\expression, m[,n]) 用於對字串進行擷取操作,從第m個位置開始,把其後的連續n個字元的部分擷取下來,如果m位負值,則從末尾開始計算

比如:substr(『string』,1,3) = str

substr(『string』-3,3) = ing

(6) instr('string', 'r') = 3:返回子字串所在字串的索引,沒有找到返回0

(7) length: 用於返回表示式中的字元數,注意返回的是number。

(8) nvl(expression1, expression2) :nvl 函式用以把乙個空值轉換為乙個實值,

如:nvl(100/quantity, 0) ,要是quantity為空值,該函式返回乙個0,如果兩個字段型別不同必須進行轉換。

(9) min(): 返回最小值,如果是字元則a(10) ascii(c1):c1是一字串,返回c1第乙個字母的ascii碼,他的逆函式是chr(i)

(11) chr(i):i是乙個數字,函式返回十進位制表示的字元

(12) lpad(c1,i, c2):c1,c2均為字串,i為整數。在c1的左側用c2字串補足致長度i,可多次重複,如果i小於c1的長度,那麼只返回i那麼長的c1字元(即擷取c1右邊的字元)。c2的預設值為單空格。

(13) rpad(c1,i, c2):在c1的右側用c2字串補足致長度i,可多次重複,如果i小於c1的長度,那麼只返回i那麼長的c1字元,其他的將被截去。c2的預設值為單空格。

(14) ltrim(c1, c2):把c1中最左邊的字元去掉,使其第乙個字元不在c2中,如果沒有c2,那麼c1就不會改變(取出c1中的第乙個字元,如果在c2中存在則去掉,然後再取出剩餘的c1中的第乙個字元作類似操作,如此迴圈,直到c1的第乙個字元在c2中不存在)。比如:select ltrim('abcdefg', 'aefgb') from dual 其結果為:cdefg

(15) rtrim(c1, c2):與ltrim類似,只是把c1中最右邊的字元去掉,使其第後乙個字元不在c2中。

(16) trim(c):將c串中前後的空格都刪除。

(17) replace(c1,c2,c3):c1,c2,c3都是字串,函式用c3代替出現在c1中的c2後返回。

(18) translate(c1,c2,c3):將c1中與c2相同的字元以c3代替。

4. 轉換函式

(1) to_char:

to_char(date,』fmt』):fm字首用來去除首尾的空字元或0

to_char(total,』fm$999999』)

如果想轉成$0.25,那就要寫成fm$9999990.99

可以把日期轉換成字元

to_char(log_time,』mm/yy』)

to_char(lot_time,』fmdd』』of;』』mm yyyy』)

具體格式如下

hh24:mi:ss am-----------15:24:32 pm

dd』』of』』month-------12 of may

ddspth------------------fourteenth

ddsp--------------------fourteen

ddth--------------------4th

yyyy--------------------1978

mm----------------------12

month-------------------may

Oracle常用函式

一 row number over 資料甲 1 select column name column name,data type,2 row number over partition by column name order by column name row num 3 from test c...

Oracle常用函式

數學函式 1.絕對值 o select abs 1 value from dual 2.取整 大 o select ceil 1.001 value from dual 3.取整 小 o select floor 1.001 value from dual 4.取整 擷取 o select trun...

oracle常用函式

1.concat c1,c2均為字串,函式將c2連線到c1的後面,如果c1為null,將返回c2.如果c2為null,則返回c1,如果c1 c2都為null,則返回null。他和操作符 返回的結果相同 select concat slobo svoboda username from dualuse...