Oracle中的函数和C中的函数差不多,也是有函数名,参数表,和返回值类型组成的,单行函数,是针对每条记录都有一个结果。单行函数可以出现在select 后面,也可以出现在where子句中。
需要处理现实的结果时,就把函数写在select后面,用于条件过滤时,就把函数用在where子句中。
1,字符函数(varchar)
字符是大小写敏感的
转小写 lower(‘...’)
转大写 upper(‘...’)
首字母大写 initcap(‘...’)
dual表,是专门用于函数测试和运算的,他只有一条记录
字符串拼接 concat(‘...’,’....’)
求指定子串 substr(‘...’,起始位置,取字符个数)(起始位置可以为负)
求制定字符串的长度length(‘……’)
可以使用"-"表示从右向左取,取的时候可以从左往友取。
例:
select upper(‘test’) from dual;
select first_name from s_emp where upper(first_name)=’GEORGE’;
select substr(first_name,-2,2) sub from s_emp;(取后两个)
select substr(first_name,2,2) sub from s_emp;(取前两个)
2,数值函数(number)
四舍五入 round(数据,保留小数点后几位)
可以用负数表示小数点前,0,表示小数点后第一位,也就是保留个位,-1表示个位(保留到十 位)。
例:select round(15.36,1) from dual;
结果:15.4
截取数字函数 trunc(数据,保留的位数(小数点后位数)) 截取个位之后补0
例:select trunc(123.456,-1) from dual; 保留倒十位
结果:120
3,日期函数
日期格式,
全日期格式 世纪信息,年月日,时分秒。
缺省日期格式,日-月-年 dd-mon-rr
日期类型是可以进行数学运算的,+1,是下一天,-1,是上一天,数据库会对数据所隐式的转换。
修改当前会话的日期格式,会按照指定的格式输出日期
alter session set nls_date_format="yyyy mm dd hh24:mi:ss";
返回当前日期 sysdate
例:select sysdate+20 from dual;
日期是格式敏感的
求两个日期间相隔了多少个月 months_between(date1,date2)
加减指定数量的月份 add_months(date,月数),月数可以为负,负值就是减去相应的月数。
从下周开始的日期加一天 next_day(date,天数)
例:select next_day(sysdate,2) from dual;
返回月末的日期 last_day(date)
截取日期 trunc(date,"年或月或日或时分秒")
例:select trunc(add_months(sysdate,1),"month") from dual;
4,不同数据类型间转换函数
将日期转成字符 tochar(date,"日期格式")
日期格式要用有效格式,格式大小写敏感 "yyyy mm dd hh24:mi:ss","year"(全拼的年),"mm"(数字表示的月) "month"(全拼的月),"day"(星期的全拼),"ddspth" (日期的全拼) "yy mm dd",’rr-mm-dd’(会根据年份判断世纪)
例:select to_char(sysdate,"yyyy mm dd hh24:mi:ss") from dual;
将字符转换成数字 to_number("..."),(可以加第二参数,第二参数指定定数字进制)
将数字转字符to_char(number,"fmt") fmt是数字格式
将字符串转成日期 to_date("...","日期格式")
例:select to_char(to_date("2006 11 03","yyyy mm dd"),"dd-month-yy")
from dual;
5,函数嵌套
例:select to_char(to_date("2006 11 03","yyyy mm dd"),"dd-month-yy")
from dual;Oracle 语法之 OVER (PARTITION BY ..) 及开窗函数Oracle时间格式转换异常处理函数相关资讯 Oracle教程
- Oracle中纯数字的varchar2类型和 (07/29/2015 07:20:43)
- Oracle教程:Oracle中查看DBLink密 (07/29/2015 07:16:55)
- [Oracle] SQL*Loader 详细使用教程 (08/11/2013 21:30:36)
| - Oracle教程:Oracle中kill死锁进程 (07/29/2015 07:18:28)
- Oracle教程:ORA-25153 临时表空间 (07/29/2015 07:13:37)
- Oracle教程之管理安全和资源 (04/08/2013 11:39:32)
|
本文评论 查看全部评论 (0)