oracle 中的除法函数,Oracle 函数
Oracle 函數
1 數值型函數
abs:求絕對值函數,如:abs(?5) 5
sqrt:求平方根函數,如:sqrt(2) 1.41421356
power:求冪函數,如:power(2,3) 8
cos:求余弦三角函數,如:cos(3.14159) ?1
mod:求除法余數,如:mod(1600, 300) 100
ceil:求大于等于某數的最小整數,如:ceil(2.35) 3
floor:求小于等于某數的最大整數,如:floor(2.35) 2
round:按指定精度對十進制數四舍五入,如:round(45.923, 1),結果,45.9
round(45.923, 0),結果,46
round(45.923, ?1),結果,50
trunc:按指定精度截斷十進制數,如:trunc(45.923, 1),結果,45.9
trunc(45.923),結果,45
trunc(45.923, ?1),結果, 40
2 字符型函數
ascii:獲得字符的ASCII碼,如:Ascii('A') 65
chr:返回與ASCII碼相應的字符,如:Chr(65) A
lower:將字符串轉換成小寫,如:lower ('SQL Course') sql course
upper:將字符串轉換成大寫,如:upper('SQL Course') SQL COURSE
initcap:將字符串轉換成每個單詞以大寫開頭,如:initcap('SQL course') Sql Course
concat:連接兩個字符串 concat('SQL', ' Course') SQL Course
substr:給出起始位置和長度,返回子字符串,如:substr('String',1,3) Str
Sql代碼
1.
2. --substr函數有三個參數,允許你將目標字符串的一部份輸出,
3. --第一個參數為目標字符串,
4. --第二個字符串是將要輸出的子串的起點,下標從1開始,如果是正數從前面數,如果是負數從后面數
5. --第三個參數是將要輸出的子串的長度
6. select? substr('0'||'2',2)|| substr('0'||'15',-2) from dual; --215
7.? select? substr('0'||'2',2)|| substr('0'||'3',2) from dual;
8.?? --23 月日比較的話實際要的是203
9.?? --215 < 23 注意這里返回的是字符串的比較,
10.?? --所以如果日期轉換成月日比較的話
11.?? --這里日那里要寫成-2 substr('0'||'2',2)|| substr('0'||'3',-2)
12.?? select substr('123',4) from dual; -- 輸出空
--substr函數有三個參數,允許你將目標字符串的一部份輸出,
--第一個參數為目標字符串,
--第二個字符串是將要輸出的子串的起點,下標從1開始,如果是正數從前面數,如果是負數從后面數
--第三個參數是將要輸出的子串的長度
select? substr('0'||'2',2)|| substr('0'||'15',-2) from dual; --215
select? substr('0'||'2',2)|| substr('0'||'3',2) from dual;
--23 月日比較的話實際要的是203
--215 < 23 注意這里返回的是字符串的比較,
--所以如果日期轉換成月日比較的話
--這里日那里要寫成-2 substr('0'||'2',2)|| substr('0'||'3',-2)
select substr('123',4) from dual; --輸出空
length:求字符串的長度 length('Wellcom') 7
instr:給出起始位置和出現的次數,求子字符串在字符串中出現的位置,如:instr('String', 'r',1,1) 3
lpad:用字符填充字符串左側到指定長度,如:lpad('Hi',10,'-') --------Hi
rpad:用字符填充字符串右側到指定長度,如:rpad('Hi',10,'-') Hi--------
trim:在一個字符串中去除另一個字符串,如:trim('S' FROM 'SSMITH') MITH
replace:用一個字符串替換另一個字符串中的子字符串,如:replace('ABC', 'B', 'D') ADC
3 日期函數
months_between:返回兩個日期間的月份,如:months_between ('04-11月-05','11-1月-01'),結果,57.7741935
add_months:返回把月份數加到日期上的新日期,如:add_months('06-2月-03',1),結果,06-3月-03
add_months('06-2月-03',-1),結果,06-1月-03
next_day:返回指定日期后的星期對應的新日期,如:next_day('06-2月-03','星期一'),結果,10-2月-03
last_day:返回指定日期所在的月的最后一天,如:last_day('06-2月-03'),結果,28-2月-03
round:按指定格式對日期進行四舍五入,如:round(to_date('13-2月-03'),'YEAR'),結果,01-1月-03
round(to_date('13-2月-03'),'MONTH'),結果,01-2月-03
round(to_date('13-2月-03'),'DAY'),結果,16-2月-03
(按周四舍五入)
trunc:對日期按指定方式進行截斷,如:trunc(to_date('06-2月-03'),'YEAR'),結果,01-1月-03
trunc(to_date('06-2月-03'),'MONTH'),結果,01-2月-03
trunc(to_date('06-2月-03'),'DAY'),結果,02-2月-03
EXTRACT()抽取當前日期的年月日:注意時分秒是抽取不到的
Sql代碼
1. --EXTRACT()抽取當前日期的年月日:注意時分秒是抽取不到的
2.? --抽取年月日
3.? SELECT EXTRACT(YEAR FROM SYSDATE) FROM DUAL;? --2010
4.? SELECT EXTRACT(MONTH FROM SYSDATE) FROM DUAL; --2
5.? SELECT EXTRACT(DAY FROM SYSDATE) FROM DUAL;?? --24
6.? select EXTRACT(HOUR FROM SYSDATE) FROM DUAL; -- 這個是錯誤的
7.?? --抽取時分秒方法一
8. SELECT EXTRACT(HOUR FROM TIMESTAMP '2009-2-24 14:46:10')FROM DUAL;
9. --14
10. SELECT EXTRACT(MINUTE FROM TIMESTAMP '2009-2-24 14:46:10')FROM DUAL;
11. --46
12. SELECT EXTRACT(SECOND FROM TIMESTAMP '2009-2-24 14:46:10')FROM DUAL;
13. --10
14.? --抽取時分秒方法二
15.?? SELECT to_char(Sysdate,'hh24:mi') FROM DUAL; -- 14:49
--EXTRACT()抽取當前日期的年月日:注意時分秒是抽取不到的
--抽取年月日
SELECT EXTRACT(YEAR FROM SYSDATE) FROM DUAL;? --2010
SELECT EXTRACT(MONTH FROM SYSDATE) FROM DUAL; --2
SELECT EXTRACT(DAY FROM SYSDATE) FROM DUAL;?? --24
select EXTRACT(HOUR FROM SYSDATE) FROM DUAL; -- 這個是錯誤的
--抽取時分秒方法一
SELECT EXTRACT(HOUR FROM TIMESTAMP '2009-2-24 14:46:10')FROM DUAL;
--14
SELECT EXTRACT(MINUTE FROM TIMESTAMP '2009-2-24 14:46:10')FROM DUAL;
--46
SELECT EXTRACT(SECOND FROM TIMESTAMP '2009-2-24 14:46:10')FROM DUAL;
--10
--抽取時分秒方法二
SELECT to_char(Sysdate,'hh24:mi') FROM DUAL; -- 14:49
4 轉換函數
Oracle的類型轉換分為自動類型轉換和強制類型轉換。常用的類型轉換函數有TO_CHAR、TO_DATE或TO_NUMBER
To_char:轉換成字符串類型,如:To_char(1234.5, '$9999.9'),結果:$1234.5
To_date:轉換成日期類型,如:To_date('1980-01-01', 'yyyy-mm-dd'),結果:01-1月-80
To_number:轉換成數值類型,如:To_number('1234.5'),結果:1234.5
5 自動類型轉換
Oracle可以自動根據具體情況進行如下的轉換:
* 字符串到數值。
* 字符串到日期。
* 數值到字符串。
* 日期到字符串。
以下是自動轉換的訓練。
自動轉換字符型數據到數值型。
6 日期類型轉換
將日期型轉換成字符串時,可以按新的格式顯示。
如格式YYYY-MM-DD HH24:MI:SS表示“年-月-日 小時:分鐘:秒”。Oracle的日期類型是包含時間在內的。
主要的日期格式字符的含義
AM、PM:上午、下午,如:08 AM
D:數字表示的星期(1~7),如:1,2,3,4,5,6,7
DD:數字表示月中的日期(1~31),如:1,2,3,…,31
MM:兩位數的月份,如:01,02,…,12
Y、YY、YYY、YYYY 年份的后幾位,如:3,03,003,2003
RR:解決Y2K問題的年度轉換
DY:簡寫的星期名,如:MON,TUE,FRI,…
DAY:全拼的星期名,如:MONDAY,TUESDAY,…
MON:簡寫的月份名,如:JAN,FEB,MAR,…
MONTH:全拼的月份名,如:JANUARY,FEBRUARY,…
HH、HH12:12小時制的小時(1~12),如:1,2,3,…,12
HH24:24小時制的小時(0~23),如:0,1,2,…,23
MI:分(0~59),如:0,1,2,…,59
SS:秒(0~59),如:0,1,2,…,59
,./-;: 原樣顯示的標點符號
'TEXT':引號中的文本原樣顯示,如:TEXT
7 數值轉換符:
9:代表一位數字,如果是正數,前面是空格,如果是負數,前面是?號,如:9999
0:代表一位數字,在相應的位置上如果沒有數字則出現0 0000
,:逗號,用作組分隔符,如:99,999
.:小數點,分隔整數和小數,如:999.9
$:$貨幣符號,如:$999.9
L:本地貨幣符號,如:L999.99
FM:去掉前后的空格,如:FM999.99
EEEE:科學計數法,如:9.9EEEE
S:負數符號?放在開頭,如:S999.9
8 其他函數
nvl:空值轉換函數,如:nvl(null, '空'),結果:空
decode:實現分支功能,如:decode(1,1, '男', 2, '女'),結果:男
userenv:返回環境信息,如:userenv('LANGUAGE'),結果:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
greatest:返回參數的最大值,如:greatest(20,35,18,9),結果:35
least:返回參數的最小值,如:least(20,35,18,9),結果:9
9 空值的轉換
如果對空值NULL不能很好的處理,就會在查詢中出現一些問題。在一個空值上進行算術運算的結果都是NULL。最典型的例子是,在查詢雇員表時,將工資sal字段和津貼字段comm進行相加,如果津貼為空,則相加結果也為空,這樣容易引起誤解。
使用nvl函數,可以轉換NULL為實際值。該函數判斷字段的內容,如果不為空,返回原值;為空,則返回給定的值。
如下3個函數,分別用新內容代替字段的空值:
nvl(comm, 0):用0代替空的Comm值。
nvl(hiredate, '01-1月-97'):用1997年1月1日代替空的雇傭日期。
nvl(job, '無'):用“無”代替空的職務。
使用nvl函數轉換空值。
總結
以上是生活随笔為你收集整理的oracle 中的除法函数,Oracle 函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js 谈this
- 下一篇: Sql Server 中汉字处理排序规则