oracle数据库函数
注意:dual(哑表)是专门用于测试函数和运算的。
单行函数
1、字符函数
字符是大小写敏感的。
转小写lower(字段名)
转大写upper(字段名)
首字母大写initcap(字段名)
字符串拼接concat(字段1,字段2)
截取子串substr(字段名,起始位置,取字符个数)
字符串长度length(...)
空值函数nvl(...)
例: select first_name,substr(first_name,2,2) sub from emp;(从名字的第二个字符开始取2个字符)。
select first_name,substr(first_name,-2,2) sub from emp;(从名字的倒数第二个字符开始取2个字符)。
2、数值函数
四舍五入函数round(数据,保留到小数点后几位)
1表示保留到小数点后一位,-1表示保留到小数点前一位。
Select round(3.15,1) from dual;返回3.2。
截取数值函数trunc(数据,保留到小数点后几位)
Select trunc(3.15,1) from dual;返回3.1。截取到小数点后一位。
注意:与round函数不同,不会四舍五入。
3、日期函数
缺省日期格式:日-月-年 dd-mon-rr
修改当前会话的日期格式,会按照指定的格式输出日期
Alter session set nls_date_format = ‘yyyy mm dd hh24:mi:ss’;
返回当前日期sysdate,世纪、年、月、日、时、分、秒
Date运算:
Select sysdate-1,sysdate,sysdate+1 from dual;单位为1天。
Select sysdate,sysdate+1/144 from dual;延迟10分钟。
Oracle 里面,
sysdate + 1 意思是 当前时间 + 1天
sysdate + 1/24 意思是 当前时间 + 1/24天 也就是1小时后
sysdate+1/144 意思是 当前时间 + 1/144天 (1/24*6) 也就是10分钟后。
Select trunc(add_months(sysdate,1),’MONTH’)from dual;取下个月首天
4、不同数据类型间转换函数
将日期转成特定格式字符串to_char(date,’日期格式’)
将字符串转成日期to_date(‘...’,’日期格式’)
Select to_char(to_date(‘2013/6/29’,’yyyyMMdd’),’yyyy mm dd’)from dual;
Insert into table values(to_date(‘2013/6/29’,’yyyyMMdd’));