Oracle中的函数1.单行函数也称标量函数,对于从表中查询的每一行,该函数都返回一个值.单行函数可用与select子句中,也可用于where子句中.单行函数大致分为: >.日期函数 >.字符函数 >.转换函数 >.其他函数 1.日期函数 >.add_months: add_months(d,n) d是日期 n表示月数 select addmonths(sysdate,1) from dual; >.months_between months_between(d1,d2) 如果d1晚与d2,则结果为正数,否则为负数.如果d1和d2为某月中的同一天后月份的最后一天,则结果为整数,否则Oracle将根据一个月31天来计算结果的小数部分 select months_between(date'2005-2-10',date'2007-3-10') from dual; =-25 差25个月 >.last_day last_day(d) 返回日期当月的最后一天的日期值 >.round round(d,[fmt]) 次函数返回日期值,次日期四舍五入为格式模型指定的单位.fmt为可选项,默认舍入最靠近的那一天 select round(sysdate) from dual; 结果为sysdate当天的日期 select round(sysdate,'year') from dual; 如果sysdate中的月在7月1日之后则返回下一年的1月1日,否则为当年的1月1日 select round(sysdate,'month') from dual; 舍入到月的第一日 select round(sysdate,'day') from dual; 最近的星期日 >.trunc trunc(d,[fmt])与round不同的是:他只舍不入 select trunc(date'2005-8-27','year') from dual; =2005-1-1 >.next_day next_day(d,day) d表示日期,day表示一周中的任何一天. select next_day(sysdate,'星期二') from dual; 结果为sysdate后的第一个星期二,参数'星期二'也可以用整数3表示. >.extract extract(fmt from d) 提取日期中的特定部分. select extract(year from date'2005-2-10') from dual; 结果为2005 注意次处的fmt不要使用''
2.字符函数
其他字符函数: chr(ASCII): 根据acsii码返回对应的字符 Lpad(char,len,to): 指定长度为len,不够长就在左边用to填充,若char的长度大于len,则取左边的指定len,右边舍掉,如: select lpad('function',15,'=') from dual; 结果:======function 若: select lpad('function',5,'=') from dual;结果funct 取5个的长度
Rpad和Lpad正好相反. trim和ltrim和rtrim一样,trim舍去左右两边的 默认也为舍去空格. 当指定leading 选项时,与Ltrim类似,裁减左边的字符 select trim(leading 9 from 9992434999) from dual;结果2435999 开头的9被去掉了,一旦遇到9以外的数字,将停止操作 当指定trailing选项时,则正好与leading 相反 select trim(trailing 9 from 9992434999) from dual;结果9992434 当不指定时 去掉左右两边的字符 select trim(9 from 9992434999) from dual;结果2434 decode(expr,search1,result1,search1,result2) 与translate不同的是,decode进行逐行逐个值的替换,translate进行逐行逐个字符的替换
数字函数
|
|