数值函数
- 四舍五入
ROUND(n,,m)
n:表示要进行四舍五入的值
m:表示保留小数点后几位或前几位
m>0:小数点后m位
m<0:小数点前m位
- 取整函数
CEIL(n):取最大值
FLOOR(n):取最小值
- 常用计算
ABS(n):绝对值函数
MOD(m,n):取余函数 m%n,如果m或n中任意一个为null,结果为null
POWER(m,n):m的n次幂,如果m或n中任意一个为null,结果为null
SQRT(n):求平方根
- 三角函数
SIN(n),ASIN(n):正弦,反正弦
COS(n),ACOS(n):余弦,反余弦
TAN(n),ATAN(n):正切,反正切
字符函数
- 大小写转换函数
UPPER(char):转为大写
LOWER(char):转为小写
INITCAP(char):将首字母转换为大写
- 获取子字符串函数
SUBSTR(char,m,n)
m:取字串的开始位置,为0表示从头截取,为负数则从尾部开始截取
n:截取子串的位数
select substr('abcde',2,3) //bcd
select substr('abcde',-2,3) //dea
- 获取字符串长度函数
LENGTH(char)
- 字符串连接函数
CONCAT(char1,char2) 等价于 char1 || cahr2
select concat('ab','cd') from dual;
select 'ab' || 'cd' from dual;
- 去除字串函数
TRIM(c1FORM char):从char中去除c1字符
LTRIM(char,c1):从左端开始去除char中的c1字符
ETRIM(char,c1):从右端开始去除char中的c1字符
TRIM(char): 去除char两端空格
- 替换函数
REPLACE(char,s_string,r_string)
省略r_string用空格替换
日期函数
- 系统时间
SYSDATE
select sysdate from dual
- 日期操作
ADD_MONTHS(date,i) 默认显示格式: day-month月-年
NEXT_DAY(date,char)
select next_day(sysdate,'星期一') from dual;
LAST_DAY(date)返回日期所在月的最后一天
MONTHS_BETWEEN()
select months_between('20-5月-15','10-1月-15')
EXTRACT(date FROM datetime) 获取当前时间的年月日时分秒
select extract(month from sysdate) from dual; //7 ,当前时间为2019-7-15
select extract(hour from timestamp ‘2019-7-15 19:26:13’); //19
转换函数
- 日期-->字符
TO_CAHR(date,fmt,params)
date:将要转换的日期
fmt:转换的格式
年:YY YYYY YEAR
月:MM MONTH
日:DD DAY
小时:HH24 HH12
分钟:MI 秒:SS
params:日期语言(一般会根据操作系统选择,可省略)
select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual; //2019-7-15 19:26:13
- 字符-->日期
TO_DATE(char,fmt,params)
select to_date('2019-7-15','YYYY-MM-DD ') from dual; // 15-7月-19
to_date()会按照默认格式进行显示,不受fmt控制
- 数字-->字符
TO_CHAR(number,fmt)
fmt:数字格式
9:显示数字并忽略前面的0
0:显示数字,位数不足,用0补齐
.或D:显示小数点
,或G:显示千位符
$:美元符号
L:数字前加一个本地货币符号
S:加正负号(前后都可以)
EEEE:科学计数法表示
select to_char(12345.678,'$99,999.999') from dual; //$12,345.678
- 字符-->数字
TO_NUMBER(char,fmt)
fmt 数字格式,可省略
select to_number('$1000','$9999') from dual; //1000
其他单行函数
- NVL(x,value)
如果x为空,返回value,否则返回x
- NVL(x,value1,value2)
如果x为非空,返回value1,否则返回value2
DECODE函数
DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )
Value 代表某个表的任何类型的任意列或一个通过计算所得的任何结果。当每个value值被测试,如果value的值为if1,Decode 函数的结果是then1;如果value等于if2,Decode函数结果是then2;等等。事实上,可以给出多个if/then 配对。如果value结果不等于给出的任何配对时,Decode 结果就返回else 。
需要注意的是,这里的if、then及else 都可以是函数或计算表达式。