數值函數
--四捨五入
select round(23.4),round(34.4,-1),round(23.4,1) from dual;
--向上取整 and 向下取整
select ceil(23.45),floor(23.45) from dual;
--取絕對值
select ABS(-23.5),ABS(23.5),ABS(0) FROM DUAL;
--取餘數
select mod(5,2) from dual;
--power(m,n) --返回m的n次冪
select power(2,3) from dual; --2的3次冪
--sqrt(n) --求平方根 16的平方根是4
select sqrt(16) from dual;
--三角函數 SIN(N),ASIN(N)...
字符函數
--大小寫轉換
select UPPER('mkdsfsdl'),LOWER('FDFSDF'),initcap('dsdsd') from dual;
--截取字符串
substr(char,m,n)--char需要截取的字符串,m從第幾位開始, n截取幾位
select substr('abcde',2,3), substr('abcde',2),substr('abcde',-3,2) from dual;
--獲取字符串的長度
select length('abcde'), length('abcde ') from dual;
--字符串的連接 CONCAT(CAHR1,CHAR3)
select CONCAT('ab','cd'), 'ab' || 'cd' from dual;
--去除字符串函數trim(c2 from c1), ltrim 從左邊開始去除一個, rtrim 從右邊開始去除一個
select trim('a' from 'abcfcd') , ltrim('abcade','a'), rtrim('abcadeaa','a')from dual;
--替換函數 replace(cahr,s_string, r_string)
select replace('dasdassd','d'), replace('dasdassd','da','A')from dual;
日期函數
--系統時間
select sysdate from dual;
--日期操作
--添加指定的月份 ADD_MONTHS(DATE,I)
select ADD_MONTHS(sysdate,3), ADD_MONTHS(sysdate,-3)from dual;
--指定星期
select NEXT_DAY(sysdate,'星期一') from dual;
--每個月的最後一天
select LAST_DAY(sysdate) from dual;
--兩個日期之間間隔的月份'20-5月-15'--15年5月20號
select months_between('20-5月-15', '10-1月-15') from dual;
--返回日期的部分extract(date from datetime)
select extract(year from sysdate), extract(month from sysdate),extract(day from sysdate) from dual;
--返回日期的小時部分
select extract(hour from timestamp '2020-10-1 17:25:13') from dual;
轉換函數
--日期轉換成字符的函數
--TO_CHAR(將要轉換的日期, 轉換的格式, 日期的語言(可省))
--YY YYYY YEAR;MM month;DD day;HH24 HH12;MI ss
select TO_CHAR(sysdate,'YY-MM-DD HH24:MI:SS'),TO_CHAR(sysdate,'YY-MM-DD HH12:MI:SS') from dual;
--字符轉換成日期的函數
select to_date('2020-07-03','YYYY-MM-DD') from dual;
--數字轉換成字符的函數TO_CHAR(number,fmt)
--9:顯示數字並忽略前面的0; 0:顯示數字,位數不足,用0補齊
--.或者D:顯示小數位; ,或G:顯示千位符; $:美元符號;S:前後加正負號
select to_char(12123.78,'$99,999.999'),to_char(12123.78,'S99,999.999') from dual;
--字符轉換成數字的函數
select TO_NUMBER('$3,2312','$99999') from dual;