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分钟之前的时间。