Oracle中有大量函数:
单行函数(single function)
多行函数(组函数)
round(列/值/表达式,小数的有效位数) 表示四舍五入
例:select round(3.1415926,3)from dual;
3.142
trunc(列/值/表达式,小数的有效位数) 直接截取,没有四舍五入
例:select trunc(3.1415926,3)from dual;
3.141
mod(列|值,列|值) 求余数.
select mod(5,2) from dual;
abs(列|值)
select abs(-2) from dual;
length(列|值|表达式) 求长度
select length(first_name) from s_emp;
select length(Hello Would)
upper(列|值|表达式); 全部转换大写
select upper('abc') from dual;
lower(列|值|表达式); 全部转换小写
select lower('abc') from dual;
initcap(列|值|表达式); 首字母大写
select initcap('helloworld') from dual;
查询ben的工资(当给的数据不准确时);
select salary from s_emp wherelower(first_name) = lower('bEn');
lpad(列|值,宽度,填充字符) 从左边开始补足
select lpad('abc',10,'de') from dual;
dedededabc
rpad(列|值,宽度,填充字符) 从右边开始补足
select rpad('abc',10,'de') from dual;
abcdededed
ltrim(列|值,截取字符) 从左边截取字符
select ltrim('dedededabc','de') from dual;
abc
表示从左边开始截取de|d|e,直到不同于截取字符的字符为止.
rtrim(列|值,截取字符) 从右边截取字符
select rtrim('abcdedede','de') from dual;
abc
表示从右边开始截取de|d|e,直到不同于截取字符的字符为止.
replace(列|值,被置换的字符,置换的字符);
translate (参数一,参数二,参数三);转换指定字符
参数一:要处理的内容,列|值
参数二:要检索的内容
参数三:检索后,与检索内容一一对应替换的内容(如果无替换值,则全部去掉)
instr()查找指定字符串中所在的位置的下标 数字整数从左往右,负数从右往左.
substr(列|值,指定位置下标,保留几位)
decode() 类似一个三目运算符 java中:(表达式?a:b)
比较第一和第二个数,如果相等就去第三个数,不相等取第四个函数。
日期函数:
add_months(date1,n) 在date1的基础上加n个月
sysdate,几个月
半年前的日期:
select add_months(sysdate,-6) from dual;
半年后的日期:
select add_months(sysdate,6) from dual;
next_day(date1,'星期几') 在date1的基础上,下星期几是什么时候
下周五是那一天
select next_day(sysdate,'星期五') from dual;
下下个星期五是那一天
select next_day(next_day(sysdate,'星期五'),'星期五') from dual;
last_day(date1) date1日期所在月的最后一天是什么时候
查询当月月底是几号
select last_day(sysdate) from dual;
查询下个月月底是几号
select last_day(add_months(sysdate,1)) from dual;
Oracle中日期类型是可以减法运算的,结果是两个日期的天数