內置函數 1數值型函數 1.1,abs(x) 功能 返回x的絕對值 參數 x數值型 返回 數字 select abs(100),abs(-100) from dual; 1.2,sign(x) 功能 返回x的正負值 參數 x,數值型 返回 數字.若正值返回1,負值返回-1,0返回0 select sign(100),sign(-100),sign(0) from dual; 1.3,ceil(x) 功能 返回大于等于x的最小整數值 參數 x,數值型 返回 數字 select ceil(3.1),ceil(2.8+1.3),ceil(0),ceil(-3.6) from dual; 1.4,floor(x) -功能 返回小于等于x的最大整數值 -參數 x,數值型 -返回 數字 select floor(3.1),floor(2.8+1.3),floor(0),ceil(-3.6) from dual; 1.5,power(x,y) 功能 返回x的y次冪 參數 x,y 數字型 返回 數字 select power(2.5,2),power(2.5,-2),power(2.5,0),power(10,2) from dual; 1.6,log(x,y) 功能 返回以x為底的y的對數,即log(底,數值) 參數 x,y 數值型 條件 x,y 都必須大于0 返回:數字 select log(2.5,6.25),log(2.5,0.16),log(2.5,1),log(10,100) from dual; 1.7,exp(y) 功能 返回e的y次冪(e為數字常量) 參數 y,數值型 返回 數字 select exp(3),exp(0),exp(-3) from dual; 1.8,ln(y) 功能 返回以e為底的y的對數(e為數字常量) 參數 y,數值型 返回 數字 select ln(20.0855369231877),ln(0.0497870683678639 ) from dual; 1.9,mod(x,y) 功能 返回x除以y的余數(取余) 參數 x,y 數值型 返回 數字 select mod(23,8),mod(82,3) from dual; 1.10,round(x[,y]) 功能 返回四舍五入后的值 如果y不為整數則截取y整數部分, 如果y>0則四舍五入為y位小數 如果y<0則四舍五入到小數點向左y為 參數 x,y 數值型 select round(5555.6666,2.6), round(5555.6666,-2.6), round(5555.6666,3), round(5555.6666) from dual; 1.11,trunc(x,[,y]) 功能 返回x 按精度y截取后的值 參數 x,y 數字型表達式, 如果y不為整數則截取y整數部分 如果y>0,x則截取到y位小數 如果y<0,x則截取到小數點向左第y位 返回 數字 select trunc(5555.6666,2.6), trunc(5555.6666,-2.6), trunc(5555.6666,-3), trunc(5555.6666) from dual; 1.12,sqrt(x) 功能 返回x的平方根 參數 x,數值型 返回 數字 select sqrt(18),sqrt(10) from dual; 2字符型函數 2.1,ascii(x1) 功能 返回字符表達式最左端字符的ASCII碼值 參數 x1,字符表達式 返回 數值型 select ascii('A'),ascii('a'),ascii('1') from dual; 2.2,chr(n1) 功能 將ascii碼轉換為字符 參數 n1,為0~255,整數 返回 字符串 select ascii('我'),ascii('愛'),ascii('你') from dual; select chr(15108241),chr(15173809),chr(14990752) from dual; 2.3,concet(c1,c2) 功能 拼接兩個字符串 參數 c1,c2字符型表達式 返回 字符型 select concat('010','88231657')||'轉23' 孫先生電話 from dual; 2.4,initcap(c1) 功能 返回字符串并將字符串的第一個字母變為大寫,其他字母變為小寫 參數 c1,字符型 返回 字符型 select initcap('smIIH abc ABC') text from dual; 2.5,lower(c1) 功能 將字符串全部轉為小寫 參數 c1,字符型 返回 字符型 select lower('smIIH abc ABC') text from dual; 2.6,upper(c1) 功能 將字符串全部轉為大寫 參數 c1,字符型 返回 字符型 select upper('smIIH abc ABC') text from dual; 2.7,instr(C1,C2[,I[,J]]) 功能 在一個字符串中搜索指定的字符,返回發現指定的字符的位置 說明 多字節符(漢字,全角符等),按一個字符計算 參數 C1 , 被搜索的字符串 C2?, 希望搜索的字符串 I?,? 搜索的開始位置,默認為1 J?,? 第J次出現的位置,默認為1 返回 數值 select instr('oracle rraning','ra',1,2) instr from dual; select instr('青島大學,山東大學,山東信息職業技術學院','山東',1,2) 學校 from dual; 查看emp表中wname字段中以S開頭的員工姓名 select ename from emp where instr(ename,'S')=1; 另一個instrb函數將 多字節符(漢字,全角符等),按2個字符計算 2.8,lemgth(C1) 功能 返回字符串的長度 說明 多字節符(漢字,全角符等),按一個字符計算 參數 C1,字符串 返回 數值型 select length('哈哈哈'), length('hhh'), length('22 33') from dual; lengthb(C1) 多字節符(漢字,全角符等),按2個字符計算 2.9,lpad(c1,n[,c2]) 功能 在字符串c1的左邊用字符串c2填充,指導長度為n時為止 參數 c1 字符串 n 追加后字符總長度 c2 追加字符串,默認為空格 返回 字符型 說明 如果c1長度大于n,則返回c1左邊n個字符 如果c1長度小于n,且c2和c1連接后大于n,則返回連接后邊n個字符 select lpad('sun',10,'*?'), lpad('sunsunsunsun',10,'*?'), lpad('sun',10,'!@#$%^&*()_+') from dual; 2.10,rpad(c1,n[,c2]) 功能 在字符串c1的右邊用字符串c2填充,指導長度為n時為止 參數 c1 字符串 n 追加后字符總長度 c2 追加字符串,默認為空格 返回 字符型 說明 如果c1長度大于n,則返回c2左邊n個字符 如果c1長度小于n,c1和c2連接后大于n ,則返回連接后的左邊n個字符 如果c1長度小于n,c1和c2連接后大于n,則返回c1與多個重復的c2連接(總長度>=n)后的左邊n個字符 在字符串'gao'的左邊和右邊分別加7個6 select lpad(rpad('gao',10,'6666666'),17,'6666666') text from dual; select rpad(lpad('gao',10,'6666666'),17,'6666666') text from dual; 截取字符 select rpad('sun6666',3) from dual; 2.11,ltrim(c1[,c2]) 功能 刪除左邊字符串 參數 c1,字符串 c2 追加字符串,默認為空格 返回 字符型 select ltrim(' qing dao shi'), ltrim('qing dao shi','qing dao ') from dual; 2.12,rtrim(c1[,c2]) 功能 刪除右邊出現的字符串 參數 c1 字符串 c2 追加字符串,默認為空格 返回 字符型 select rtrim(' qing dao shi',' shi') from dual; 2.13,trim(c1 from c2) 功能 刪除左邊和右邊出現的字符串 參數 c2 刪除前的字符串 c1 要刪除的字符串,默認為空格 返回 字符型 select trim(' qing dao shi '), trim('*' from '***qing dao shi***') from dual; 如果源數據中張三的前面或者后面有空字符,直接查找是找不到的 select * from student where trim(sname)='張三'; 2.14,replace(c1,c2[,c3]) 功能 將字符表達式值中,部分相同字符串,替換成新的字符串 參數 c1希望被替換的字符或變量 c2 被替換的字符串 c3 要替換的字符串,默認為空(即刪除) select replace('i love you','i','he'), replace('i love you','i ') from dual; 2.15,substr(c1,n1[,n2]) 功能 截取字符串 說明 多字節符(漢字,全角符等),按一個字符計算 參數 在字符表達式c1里,從n1開始截取n2個字符;若不指定n2則截取從第y個字符指導結束的字符 返回 字符型 select substr('20191029',1,4), substr('20191029',5) from dual; substrb(c1,n1[,n2]) 多字節符(漢字,全角符等),按2個字符計算 2.16, translate(c1.c2,c3) 功能 將字符表達式中,指定字符替換為新字符 說明 多字節符(漢字,全角符等),按1個字符計算 參數 c1 希望被替換的字符或變量 c2 查詢原始的字符集 c3 替換新的字符集,將c2對應順序字符,替換為c3對應順序字符 注意 如果c3長度大于c2,則c3后面長處的字符無效 如果c3長度小于c2,則c2后面長處的字符均替換為空(刪除) 如果c3長度為0,則返回空字符串 如果c2里字符重復,按首次位置為替換依據 select translate('he love you','he','i'), translate('he love you','o','i') from dual; 3日期函數 3.1,sysdate 功能 返回系統當前日期 返回 日期 select sysdate time from dual; 3.2,add_months(d1,n1) 功能: 返回在日期d1基礎上再加n1個月后的日期 參數: d1,日期型 n1,數字型 select sysdate, add_months(sysdate,2), add_months(sysdate,-2) from dual; 3.3,last_day(d1) 功能 返回日期d1所在月份最后一天的日期 參數 d1日期型 返回 日期 select sysdate, last_day(sysdate) from dual; 3.4,months_between(d1,d2) 功能 返回日期d1到日期d2之間的月數 參數 d1,d2 日期型 返回 數字 如果d1>d2,則返回正數 如果d1<d2,則返回負數 select sysdate, months_between(sysdate,to_date('2019-01-01','YYYY-MM-DD')), months_between(sysdate,to_date('2020-01-01','YYYY-MM-DD')) from dual; 3.5,new_time(dt1,c1,c2) 功能 給出時間dt1在c1時區對應c2時區的日期和時間 參數 dt1 日期型 c1,c2對應的 時區及其簡寫 大西洋標準時間:AST或ADT 阿拉斯加_夏威夷時間:HST或HDT 英國夏令時:BST或BDT 美國山區時間:MST或MDT 美國中央時區:CST或CDT 新大陸標準時間:NST 美國東部時間:EST或EDT 太平洋標準時間:PST或PDT 格林威治標準時間:GMT Yukou標準時間:YST或YDT select sysdate bj_time, new_time(sysdate,'PDT','GMT') los_angles from dual; 3.6,round(d1[,c1]) 功能 給出日期d1 按期間(參數c1) 四舍五入后的期間的第一天日期(與數值四舍五入意思相近) 參數 d1日期型 c1字符型 c1默認為j(即最近0點日期) c1對應的參數表 最近0點日期 取消參數c1或j 最近的星期日 day或者dy或者d 最近月初日期 month或者mon或者mm或者rm 最近季日期 q 最近年初日期 syear或者year或者yyyy或者yyy或者yy或者y(多個y表示精度) 最近世紀初日期 cc或者scc select sysdate 當前日期, round(sysdate,'syear') 最近年初日期, round(sysdate,'q') 最近季度日期, round(sysdate,'month') 最近月初, round(sysdate) 最近0點 from dual; 3.7,trunc(d1[,c1]) 功能 返回日期d1所在期間(參數c1)的第一天日期(返回日期所在期間的第一天) 參數 d1日期型, c1位字符型,默認為當前日期 select sysdate 當前日期, trunc(sysdate) 今天日期, trunc(sysdate,'day') 本周日, trunc(sysdate,'month') 本月初, trunc(sysdate,'q') 本季初, trunc(sysdate,'year') 本年初日期 from dual; 3.8,next_day(d1[,c1]) 功能 從特定日期得到未來第一個星期幾的日期 參數 d1日期型 c1字符型,默認為當前日期 參數表 星期一,星期二,星期三,星期四,星期五,星期六,星期日 從當前日期得到之后的第一個星期幾的日期 select sysdate 當前日期, next_day(sysdate,'星期一') 未來第一個星期一, next_day(sysdate,'星期二') 未來第一個星期二, next_day(sysdate,'星期三') 未來第一個星期三, next_day(sysdate,'星期四') 未來第一個星期四, next_day(sysdate,'星期五') 未來第一個星期五, next_day(sysdate,'星期六') 未來第一個星期六, next_day(sysdate,'星期日') 未來第一個星期日 from dual; 3.9,extract(c1 from d1) 功能 提取時間日期中的數據 參數 d1日期型(date)/日期時間型(timestamp) c1為字符型(參數) select extract(hour from timestamp '2001-2-16 2:38:40 ' ) 小時, extract(minute from timestamp '2001-2-16 2:38:40 ' ) 分鐘, extract(second from timestamp '2001-2-16 2:38:40 ' ) 秒, extract(DAY from timestamp '2001-2-16 2:38:40 ' ) 日, extract(MONTH from timestamp '2001-2-16 2:38:40 ' ) 月, extract(YEAR from timestamp '2001-2-16 2:38:40 ' ) 年 from dual; select sysdate 當前日期, extract(DAY from sysdate ) 日, extract(MONTH from sysdate ) 月, extract(YEAR from sysdate ) 年 from dual; 3.10,dbtimezone 功能 返回數據庫時區 select dbtimezone from dual; 3.11,sessiontimezone 功能 返回當前會話時區 參數 沒有參數,沒有括號 返回 字符型 select dbtimezone, sessiontimezone from dual; 3.12,interval c1 set1 功能 變動日期時間數值 參數 c1位數字字符串或日期時間字符串 set為日期參數 返回 日期時間格式的數值,前面多個+號 以天或天更小為單位時可用 數值表達式 借用 如1表示1天,1/24表示1小時,1/24/60表示1分鐘 select trunc(sysdate)+(interval '1' second) 加1秒, trunc(sysdate)+(interval '1' minute) 加1分鐘, trunc(sysdate)+(interval '1' hour) 加1小時, trunc(sysdate)+(INTERVAL '1' DAY) 加1天, trunc(sysdate)+(INTERVAL '1' MONTH) 加1月, trunc(sysdate)+(INTERVAL '1' YEAR) 加1年, trunc(sysdate)+(interval '01:02:03' hour to second) 加指定小時到秒, trunc(sysdate)+(interval '01:02' minute to second) 加指定分鐘到秒, trunc(sysdate)+(interval '01:02' hour to minute) 加指定小時到分鐘, trunc(sysdate)+(interval '2 01:02' day to minute) 加指定天數到分鐘 from dual;
轉載自://www.cnblogs.com/inmeditation/p/11794266.html
欧美黄色网