锁定老帖子 主题:oracle辅导(1--3)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-03
Oracle数据库函数(单行函数)
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; 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-12-31
LZ的3个帖子都很基础。支持
|
|
返回顶楼 | |
发表时间:2009-01-02
楼主继续阿。。。
支持。。。。。。。。。。。。 |
|
返回顶楼 | |
发表时间:2009-02-10
支持楼主 辛苦了
|
|
返回顶楼 | |
发表时间:2009-02-10
很基础,不错。顶!
|
|
返回顶楼 | |
发表时间:2009-03-08
这种贴,越多越好,谢谢!~
|
|
返回顶楼 | |
发表时间:2009-03-18
select substr(first_name,-2,2) sub from s_emp;(取后两个)
顶一个 |
|
返回顶楼 | |
发表时间:2009-05-15
LZ辛苦,但是还得继续辛苦啊
|
|
返回顶楼 | |
发表时间:2009-10-13
基本语句很详细呀
|
|
返回顶楼 | |
浏览 7791 次