Oracle处理小数点后位数、格式化数字、查找指定字符所在位置的几个函数
轉載自:http://www.cnblogs.com/toowang/p/3781480.html
1.處理小數點位數的幾個oracle函數():
1.取四舍五入的幾位小數
select round(1.2345, 3) from dual;結果:1.235
2. 保留兩位小數,只舍
select trunc(1.2345, 2) from dual;結果:1.23
select trunc(1.2399, 2) from dual;結果:1.23
3.取整數
返回大于或等于x的最大整數: (向上取整)
結果:24
返回等于或小于x的最大整數: (向下取整)
select floor(23.33) from dual;結果:23
返回舍入到小數點右邊y位的x值:rcund(x,[y]):(向上取整)
select round(23.33,1) from dual;結果:23.3
返回截尾到y位小數的x值:trunc(x,[y]):(向下取整)
select trunc(23.88,1) from dual;結果:23.8
2.格式化數字(to_char()函數)
select to_char(1210.73, '9999.9') from dual;---結果:1210.7 select to_char(1210.73, '9,999.99') from dual;---結果:1,210.73 select to_char(1210.73, '$9,999.99') from dual;---結果:$1,210.73 select to_char(21, '000099') from dual;--結果:000021to_char函數特殊用法
select sysdate from dual;--結果:2017/9/18 14:19:45 --每周第幾天 select to_char(sysdate,'d') from dual;--結果:2 --每月第幾天 select to_char(sysdate,'dd') from dual;--結果:18 --每年第幾天 select to_char(sysdate,'ddd') from dual;--結果:261 --每年第幾周 select to_char(sysdate,'ww') from dual;--結果:38 --每年第幾月 select to_char(sysdate,'mm') from dual;--結果:09 --每年第幾季 select to_char(sysdate,'q') from dual;--結果:3 --年份 select to_char(sysdate,'yyyy') from dual;--結果:20173.查找指定字符所在位置(instr()函數)
instr函數返回要截取的字符串在源字符串中的位置。
語法如下:instr( string1, string2 [, start_position [, nth_appearance ] ] )
參數說明:
string1 源字符串,要在此字符串中查找。
string2 要在string1中查找的字符串.
start_position 代表string1 的哪個位置開始查找。此參數可選,如果省略默認為1. 字符串索引從1開始。如果此參數為正,從左到右開始檢索,如果此參數為負,從右到左檢索,返回要查找的字符串在源字符串中的開始索引。
nth_appearance 代表要查找第幾次出現的string2. 此參數可選,如果省略,默認為 1.如果為負數系統會報錯。
注意:
如果String2在String1中沒有找到,instr函數返回0.
例子:
select instr('abc','a') from dual; -- 返回 1 select instr('abc','bc') from dual; -- 返回 2 select instr('abc abc','a',1,2) from dual; -- 返回 5 select instr('abc','bc',-1,1) from dual; -- 返回 2 select instr('abc','d') from dual; -- 返回 0注:也可利用此函數來檢查String1中是否包含String2,如果返回0表示不包含,否則表示包含。
總結
以上是生活随笔為你收集整理的Oracle处理小数点后位数、格式化数字、查找指定字符所在位置的几个函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle中case when用法
- 下一篇: ORA-12170:TNS:连接超时