亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

函數的分類

老師,你好 我想問下在oracle當中,函數的分類是什么樣的?以及具體包括什么函數呢?


正在回答

2 回答

內置函數,也就是oracle給預先定義好的函數,可以由我們直接來使用。

自定義函數,是我們根據自己的需求自行編寫的函數,供我們使用

0 回復 有任何疑惑可以回復我~

函數分類

內置函數:數值函數、字符函數、日期函數、轉換函數

1、數值函數

(1)、四舍五入

round(n,m)

省略m:默認為:0

m>0:小數點后m位

m<0:小數點前m位

注意:oracle中不能直接使用函數,必須包含一個目標表dual,即select 函數 from? dual;?? (dual作為目標表)

如:select round(23.4),round(23.45,1),round(23.45,-1) from dual;

結果:23 ?23.5 ?20

(2)、取整函數

ceil(n):--取最大值

floor(n):--取最小值

如:select ceil(23.45),floor(23.45) from dual;

結果:24 23

(3)、常用計算

1)取絕對值:abs(n)

如:select abs(23.45),abs(-23) from dual;

結果:23.45 23

2)取余數:mod(m,n)

如果m和n中有一個為null值,則結果為null

如:select mod(5,2),mod(5,null) from dual;

結果:1?

3)數值的n次冪:power(m,n)

如:23用power(2,3)表示,結果8

Select power(2,3),power(null,2) from dual;

結果:8、有null值,則結果也為null

4)平方根:sqrt(n)

如:Select sqrt(16),sqrt(null) from dual;

結果:4、有null值,則結果也為null

(4)、三角函數

sin(n) 、asin(n) 反正弦

cos(n)、acos(n) 反余弦

tan(n)、atan(n) 反真切

例:select sin(3.14159265359/6) from dual;

結果:0.5

2.字符函數

(1)、大小寫轉換函數
1)upper(chars):表示全部轉大寫

2)lower(chars):表示全部轉小寫

3)initcap(chars):表示把首字母大寫,后面的字符全部小寫

(2)、獲取子字符串函數

substr(char,[m,n]) m表示取子串的開始位置 n表示截取子串的位數

例:select substr('abcde',2,3) ,substr('abcde',2),substr('abcde',-2,1) from dual;

結果為: bcd bcde d

注意:m=0表示從首字母開始截取,n可以省略表示從m的位置截取到字符串末尾;

如果m=0且省略n那么結果仍為源字符串;

如果m為負數表示從字符串的尾部開始截取

select substr('abcdefg',-5,4) from dual;

結果:cdef

3、日期函數

1)、系統函數

sysdate

默認格式:DD-MON-RR(日月年)

如:Select sysdate from dual;

2)、日期操作

①add_months(date,i)

如:select add_months(sysdate,3),add_months(sysdate,-3) from dual;

結果:04-9月 -16???? ?04-3月 -16

②next_day(date,char)

如:select next_day(sysdate,'星期日') from dual;;

結果:顯示下一個的周日的日期 05-6月 -16

③last_day(date)

? 如:select last_day(sysdate) from dual;

? 結果:查看當月最后一天 30-6月 -16

④months——between(date1,date2)

? 如:select months_between(sysdate,'4-8月-16') from dual;

結果:查看兩個日期之間相隔的月份,返回值是小數? -2

PS:要獲取兩個日期相隔多少天,可以用兩個日期直接相減得到多少天。

⑤extract(date from datetime)--獲取時間戳

如:select extract(year from sysdate) from dual;(month或者day)

如果想得到時分秒,例子如下:(用timestamp)

select extract(hour from timestamp '2016-10-1? 9:56:4') from dual;

(minute或second)

? ? 4、轉換函數

? ? ?1)、日期轉換成字符的函數

to_char(date,fmt,params)

參數說明:

date:將要轉換的日期

fmt:轉換的格式

params:日期的語言

默認格式:DD-MON-RR(天月年)

YY YYYY YEAR(年)

MM MONTH(月)

DD ?DAY(天)

HH24 ?HH12(24、12制)

MI(分) SS(秒)

如:select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual;

結果:2016-06-04 10:03:50

2)、字符轉換成日期的函數

to_date(char,fmt,params)

params:用于指定日期的語言(一般不寫)

如:select to_date('2016-05-22','YYYY-MM-DD') from dual;

注意:to_date() 按照系統默認格式顯示日期

3)、數字轉換成字符的函數

to_char(number,fmt)

9:顯示數字并忽略前面的0

0:顯示數字,位數不足,用0補齊

.或D:顯示小數點

,或G:顯示千位符

$:美元符號

S:加正負號(前后都可以,但不可同時加)

如:select to_char(5123.456,'S$99,999.99')from dual;

結果:+$5,123.46

4)、字符轉換成數字的函數

to_number(char,fmt)

fmt是轉換的格式,可以省略

如:select to_number('$2,000','$9999') from dual;

結果:2000


2 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

函數的分類

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號