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

[经验分享] Oracle——09常用系统内置函数

[复制链接]

尚未签到

发表于 2016-8-11 06:52:09 | 显示全部楼层 |阅读模式
  
  
to_char();--转换为字符串
  to_number();--转换为数值类型
  to_date();--转换为日期类型
  
  1、常用数学运算函数
  abs(value) : 返回value的绝对值
  ceil(value) :返回大于或等于value的最小整数
  cos(value) : 返回value的余弦值
  floor(value) : 返回等于或小于value的最大整数
  mod(value1,value2) : 返回value1除以value2的余数
  power(value,e) : 返回value的e次幂
  round(value,precision) : 保留precision位小数对value进行四舍五入
  sign(value) : 如果value是正则返回1,是负则返回-1,否则返回0.
  sqrt(value) : 返回value的平方根。
  trunc(value,precision) : 是一个截取函数,如果precision为正,则往小数点右边截取precision位,为负则往左边截取precision位。
  
  2、常用字符串函数
  length(value) : 返回value的长度,value可以是字符串、数字或表达式
  lower(value) : 把给定字符串value变为小写
  upper(value) : 把给定字符串value变为大写
  lpad(string,length[,padding]) : 在string左边填充padding,直到string的长度达到length,如果不指定padding,则默认填充空格
  rpad(string,length[,padding]) : 在string右边填充padding,知道string的长度达到length,如果不指定padding,则默认填充空格
  ltrim(string[,trimValue]) : 从左边删除trimValue,如果不指定trimValue则删除空格
  rtrim(string[,trimValue]) : 从右边删除trimValue,如果不指定trimValue则删除空格
  string1 || string2 : 连接两个字符串为一个字符串
  initcap(string) : 将字符串的首字母大写
  replace(String,src,dest) : 将string中的src用dest代替
  substr(string,start[,count]) : 从start位置开始在string中截取count个字符,如果没有指定count,则截取到末尾
  
  3、统计函数
  avg([distinct] columnName) : 返回columnName中所有值的平均值,若使用distinct则返回所有不同的非空值的平均值
  count([distinct] value) : 统计记录数,若使用distinct则只统计不同的非空数值。value可以是字段名也可以是表达式
  max(columnName) : 返回columnName中的最大值
  min(columnName) : 返回columnName中的最小值
  sum(columnName) : 返回columnName中各值的总和
  
  4、常用日期函数
  add_months(date,number) : 返回date之后number个月的日期
  last_day(date) : 返回date所在月份的最后一天
  months_between(date1,date2) :返回date2减去date1之后的月数
  next_day(date,'day') : 返回date后的day所在的日期,其中day表示全称的星期,如Monday
  round(date,'format') : 把date四舍五入到指定的format格式
  to_char(date,'format') : 将日期date转换为format格式的字符串
  to_date(string,'format') : 将字符串string按照format转换成日期形式
  to_timestamp(string,'format'):将字符串string按照format转换成时间戳
  trunc(date):将日期date的时分秒都设为0
  
  另附几个数字跟日期互相转换的自定义函数:

--create function 数字转日期
create or replace function FN_NUMBER_TO_DATE(timeInMillis in number) return date is
Result date;
begin
Result := to_date('1970-01-01 00:00:00', 'yyyy-MM-dd hh24:mi:ss') +
timeInMillis / (24 * 60 * 60 * 1000);
return(Result);
end FN_NUMBER_TO_DATE;

--create function 取到几天以前的日期
create or replace function FN_DAYS_AGO(dest in date, days in number) return date is
Result date;
timeInMillis number;
begin
timeInMillis := FN_DATE_TO_NUMBER(dest) - days*24*60*60*1000;
Result := FN_NUMBER_TO_DATE(timeInMillis);
return(Result);
end FN_DAYS_AGO;

--create function 日期转数字
create or replace function FN_DATE_TO_NUMBER(inDate in date) return number is
Result number;
begin
Result := (inDate-to_date('1970-01-01', 'yyyy-MM-dd')) * 24*60*60*1000;
return(Result);
end FN_DATE_TO_NUMBER;
  

运维网声明 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-255993-1-1.html 上篇帖子: oracle 获取表描述信息 下篇帖子: Oracle——10用户自定义函数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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