Oracle——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;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值