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的余数

扫描二维码关注公众号,回复: 1382525 查看本文章

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;

猜你喜欢

转载自elim.iteye.com/blog/1554945
今日推荐