(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只可以是整數
(3)比如: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
(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為負值,就截尾在小數點左邊相應的位上。
(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中不存在)。比如:selectltrim(
'abcdefg'
, 'aefgb'
)fromdual
其結果為: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代替。
(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...