number型別的精度表示可以標識資料精確度的位數。對於數字13245.977,當精確到小數點後2位,資料為12345.98,此時精度為7。而當精確到小數點前2位,資料為12300,此時精度為3,因為有3個數字對資料的準確度作出貢獻
number型別中。小數字數可正可負,當為負數時,表示將數字精確到小數點之前的位數,當小數字數為0時,表示將數字精確到正數
指定number型別的列或變數時,小數字數不能超過精度
number(5,2)表示,精度為5,精確到小數點後2位
select abs(-12.45) from dual
結果:21.45
select round(4.37,1) result from dual
結果:4.4
select round(456.37,-1) result from dual
結果:460
select round(456.37) result from dual
結果:456
當小數字數為0或省略時,表示精確到整數
ceil()返回大於等於數值型引數的最小整數
floor()返回小於等於引數的最大整數
mod()返回乙個除法表示式的餘數
mod(被除數,除數)
select mod(5,2) result from dual
結果;1
在mod()中,被除數可以是0
select mod(5,0) result from dual
結果:5
當引數大於0,返回1,當引數小於0,返回-1,當引數為0返回0
引數不能小於0
select power(4,3) result from dual
結果64.4是底數,3是指數
trunc()擷取時不進行四捨五入,而是直接捨去
select trunc(3.789,2) result from dual
結果:3.78
select chr(65) result from dual
結果:a
應用:向資料表中插入不宜直接輸入的字元。在oracle中,『&』用來進行變數引用,當插入含有改符號時,oracle可能會將其解釋為變數引用
insert into test_char(f_char) values('&id=1');
此時pl/sql給出提示視窗,要求輸入變數的值。處理該問題時,首先將其defin選項關閉,再執行插入
set define off
insert into test_char(f_char) values('&id=1');
格式字元『0』
0代表乙個數字位,當原數值沒有數字位與之匹配時,強制新增0
select to_char(12.78,'000.000') result from dual
結果:012.780
格式字元『9』
9代表乙個數字位,當原數值的整數部分沒有數字位與之匹配,不填充任何字元
select to_char(12.78,'999.999') result from dual
結果:12.780
select to_char(0.78,'999.999') result from dual
結果:.780
對於小於1的小數來說,格式引數的個位使用『0』更好
select to_char(0.78,'990.999') result from dual
結果:0.780
格式字元『,』
select to_char(4560000,'99,999,990.00') result from dual
結果:4,560,990,00
格式字元『fm』
select to_char(12.78,'fm000.000') result from dual
結果:012.780
select to_char(12.78,'fm999.999') result from dual
結果:12.78
fm格式符的意義在於遮蔽所有不必要的空格和0
格式字元『$』
select to_char(12.78,'$999.999') result from dual
結果:$12.780
$可以出現在任何位置,而不必出現在開頭
select to_char(12.78,'999.9$99') result from dual
結果:$12.780
如果『fm』和『$』均出現在格式引數中,則fm必須出現在開頭,否則報錯
select to_char(12.78,'fm$999.999') result from dual
結果:$12.78
格式字元『l』
l是指定指定本地化貨幣的標識
select to_char(12.78,'fml999.999') result from dual
結果:¥12.78
格式字元『c』
c返回與資料庫系統環境相關的貨幣種類符號
select to_char(12.78,'fm999.999c') result from dual
結果:12.78cny
cny代表國際標準的人民幣貨幣種類符號
注意:『x』的位數不能小於實際十六進製制數的位數
select to_char(255,'***') from dual
結果:ff
select to_char(255,'x') from dual
結果:##。這是錯誤的結果 Oracle日期型及處理方法講解
sysdate 獲取的日期精確到秒 select add months to date 2010 2 27 yyyy mm dd 1 new date from dual結果 2010 3 27 當某年的2月只有28天,那麼新增乙個月後,返回3月的最後一天 select add months to ...
Oracle的Number型數值儲存及轉換
我們可以通過dump函式來轉換數字的儲存形式,乙個簡單的輸出類似如下格式 sql select dump 1 from dual dump 1 typ 2 len 2 193,2 dump函式的輸出格式類似 型別 長度 符號 指數字 數字1,數字2,數字3,數字20 各位的含義如下 1.型別 num...
Shell中的數值運算及處理
幾個數值處理技巧 小數運算操作 expr 數值1 運算子 數值2 注 使用 使需要轉義如果數值是變數的話,直接使用變數名,如 num1 10 num2 20 echo num1 num2 使用 時不需要轉義 格式 let 變數 let 變數,let 變數 let 變數,let 變數 增量,let 變...