標籤:
數值函數:1、四捨五入函數round() from dual:一行一列組成select round(23.4) from dual;--預設不寫m表示m為0select round(23.45,1) from dual;--1表示保留小數點後一位,那麼是小數點的第二位四捨五入select round(23.45,-1) from dual;---1表示小數點前一位四捨五入取整,前一位是3四捨五入為202、取整函數:select ceil(23.45),floor(23.45) from dual;3、常用計算:abs(n)絕對值函數:select abs(23.45),abs(-23),abs(0) from dual;mod(m,n):取餘函數,如果m和n中有一個值為null值,則結果返回null值select mod(5,2) from dual;select mod(5,null) from dual;power(m,n):表示返回m的n次冪select power(2,3),power(null,2) from dual;sqrt(n):求平方根的函數select sqrt(16) from dual;4、三角函數:sin(n),asin(n):n代表弧度select sin(3.14) from dual;cos(n),acos(n);字元函數:1、大小寫轉換函式:upper(char),lower(char),initcap(char),把首字母轉為大寫select upper('abcde'),lower('ADe'),initcap('asd') from dual;2、擷取子字串函數:substr(char,[m[n]]),n如果省略代表從m截取到字串的末尾m為0表示從字串的首字母開始截取m為負數表示從字串的尾部開始截取select substr('abcde',2,3);substr('abcde',2),substr('abcde',-2,1) from dual;3、擷取字串長度的函數:length(char)select length('abc ') from dual;4、字串串連函數:concat(char1,char2);與||操作符的作用一樣select concat('ab','cd') from dual;select 'ab' ||'cd' from dual;5、去除子串函數:trim(c2 from c1),c2是一個字元,c1是字串select trim('c' from 'cdccec') from dual;--dcce,去除左右2邊是c開始的字元select trim('c' from 'ccdd') from dual;--ddltrim(c1[,c2]);c1是字串,c2是字元,從頭部去除一個字元rtrim(c1[,c2]):trim(c1):代表去除左右2邊的空格ltrim(c1):只有一個參數的話代表去除左邊的空格rtrim(c1):只有一個參數的話代表去除右邊的空格7、替換函數replace()select replace('abcde','a','A')from dualselect replace('abcde','a')from dual;--替換為空白格select replace('abcde','ab',A) from dual;日期函數:系統時間函數:SYSDATE 預設格式DD-MM-YY(日月年)ADD_MONTHS(date,i):select add_months(sysdate,3),add_months(sysdate,-3) from dual;NEXT_DAY(date,char):select next_day(sysdate,'星期一') from dual;LAST_DAY(char):select last_day(sysdate) from dual;MONTHS_BETWEEN(char1,char2):計算2個日期之間間隔的月份select months_between('20-5月-15','10-1月-15') from dual;日期操作函數:擷取年份、月份、日期、小時提取指定日期部分的函數select extract(year from sysdate) from dual;select extract(month from sysdate) from dual;select extract(day from sysdate) from dual;select extract(hour from timestamp '2015-10-1 17:22:22') from dual;轉換函式:日期轉換為字元的函數TO_CHAR(date[,fmt[,params]]):date:將要轉換的日期、fmt:轉換的格式、params:日期的語言預設是DD-MM-YYselect to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') FROM DUAL;//預設最後一個參數不寫字元轉換為日期的函數TO_DATE(char[,fmt[,params]]):select to_date('2015-05-22','YYYY-MM-DD') FROM DUAL;//注意:to_date()按照系統預設的格式顯示日期數字轉換為字元的函數select to_char(12345.678,'$99,999.999') from dual;字元轉換為數位函數TO_NUMBER(char[parms]);select to_number('$1,000','$9999') from dual;在查詢語句中使用函數時輸出結果的特殊改變不會影響到資料庫中的值在員工資訊表中查詢出員工的生日select substr(cardid,7,8) from users;將部門號01全部替換成資訊技術select replace(deptno,'01','資訊技術') from users;將員工資訊表中的年齡欄位與10取餘select mod(age,10) from users;取得員工入職的年份select extract(year from regdate) from users;查詢出5月份入職的員工資訊select * from users where extract(month from regdate)=5;
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
oracle資料庫內建函數之數值函數、字元函數、日期函數、轉換函式及其在查詢語句中的運用