设为首页 收藏本站
查看: 721|回复: 0

[经验分享] Oracle数据库函数(单行函数)

[复制链接]

尚未签到

发表于 2016-7-27 07:00:16 | 显示全部楼层 |阅读模式
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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-249862-1-1.html 上篇帖子: Record Oracle Bind Variables and Java 下篇帖子: Oracle索引分析与比较(1)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表