SQL Plus 函数

1.SQL*Plus中的数学函数

Abs(value) ——  返回value的绝对值,结果恒为正.

Ceil(value) ——  返回大于或等于value的最接近的整数。 Eg: Ceil(34.09) = 35

Cos(value) ——  返回value的余弦值。Eg: Cos(180) = 0.5984601

Floor(value) ——  返回等于或小于value的最大的整数 Eg: Floor(34.09) = 34

Mod(value,divisor) —— 返回value除divisor的余数。如果divisor等于0,则返回value

Power(value,exponent) —— 返回vaule的exponent次幂

Round(value,precision) —— 四舍五入,结果近似到小数点右侧的precision位

Sign(value) —— 返回一个数值,指出value是正还是负。>0返回1,<0返回-1,=0返回0,配合decode使用,很有用的函数。

Eg:decode(sign(trunc(sysdate,'HH')- trunc(sysdate) -7/24),1,trunk(sysdate),trunk(sysdate)-1)

Sqrt(value) —— 返回value的平方根

Trunc(value,precision) —— 返回舍入到指定的precision位的value值。

如果precision为正,就截取到小数点右侧的这个数值处。如果指定的precision为 负,就截取到小数点左侧的该数值处。如果没有指定precision,就假定为0,截取到小数点处。

Eg:Trunk(456.789,-1)     450       Trunk(456.789,-2)     400

2.SQL*Plus中的字符串函数

Length(value) —— 返回value的长度。Value可以是字符串、数字或者表达式

Lower(string) —— 函数把给定的字符串string中的字符变成小写

Upper(string) —— 函数将string的字符改为大写

Lpad(string, Length [,padding]) —— 函数在string左侧填充padding指定的字符串,直到string达到了给定的length长度。如果未指定padding,相应的空间使用默认值。

Rpad(string, length[,padding]) —— 作用和Lpad相同,只是在右侧填充

Ltrim(string [,trimming_value]) —— 函数从左侧修剪string。它从字符串左侧删除value中出现的任何字符,直到出现value中没有的字符为止。如果没有指定 trimming_value,就使用默认空格。

Rtrim(string [,trimming_value]) —— 和ltrim功能相同,只是从右侧修剪。

Initcap(string) —— 函数将每个字符串的首字母大写

Instr(string,value [,start[,occurrence]]) —— Instr函数返回value在 string中的位置。如果指定start位置,instr就从那开始。如果指定了occurance,instr返回value出现occurance 次的位置。

注意:日期和数字可以代替字符串

Replace(string,if,then) ——  Replace函数在string中查if,并用then替换

Soundex(string) —— 该函数语法与其他的字符串函数不同,它用来查找与string发音相似的单词。返回结果的首字母要与string的首字母相同

Substr(string,start[,count]) —— 函数从string中提取从start指定的位置开始的count个字符。如果未指定count,从start开始的所有字符都要被提取。

3.SQL*Plus中的日期函数

Add_months(date,number)  ——  函数返回给指定的日期加上指定的月数后的日期值。

Eg:select sysdate as today,add_months(sysdate,1) as next_nonth,add_month (sysdate,-1) as last_month from dual;

Last_day(date)  —— 函数返回指定日期所在月的最后一天。

Eg:select last_day(sysdate) as last_day from dual;

Months_between(date1,date2) —— 函数返回date1减去date2得到的月数。通常,date1是将来的日期。所得结果通常是个小数。

Eg:select months_between (’01-5月-2007’,sysdate) from dual;

Next_day(date,’day’)  —— 函数给出date后的day所在的日期,day是全拼出来的星期名称。

Eg:select next_day(sysdate,’星期二’) from dual;

Round(date,’format’) ——函数把date四舍五入到由format指定的格式。

Eg:select round(sysdate,’month’) from dual;

To_char(date,’format’) —— 函数接收date,并把它以给定的format形式作为字符类型的日期返回。多数情况下,用于把日期和字符段连起来。

Eg:select to_char(sysdate,’YYYY”年”fmMM”月”fmDD”日”’) from dual;

To_date(string,’format’) —— 函数将char或varchar2数据类型转换为日期数据类型,格式模型format指定字符的形式。

Eg:select to_date(‘2005-12-06’,’yyyy-mm-dd’) from dual;

Trunk(date,’format’) —— 函数将指定日期截断为格式模型format指定的单位的日期,与round函数不同的是它只舍不入。

Eg:select trunc(sysdate,’month’) from dual;

   select trunc(sysdate)+7/24 from dual; 取当天7:00开始时间

   select trunc(sysdate,’HH’) from dual; 到当前的整点小时。

   select trunc(sysdate,'MM') from dual;  舍入到月。

   select trunc(sysdate,'D') from dual; 舍入到周。

   select to_char(sysdate-1/144,'YYYYMMDD HH24MISS') from dual; 取10分钟之前的时间。

原文地址:https://www.cnblogs.com/bellin124/p/13936490.html