ORACLE辅导之3

阅读更多

辅导之3

Oracle数据库函数(单行函数)

 

Oracle中的函数和C中的函数差不多,也是有函数名,参数表,和返回值类型组成的,单行函数,是针对每条记录都有一个结果。单行函数可以出现在select 后面,也可以出现在where子句中。

 

需要处理现实的结果时,就把函数写在select后面,用于条件过滤时,就把函数用在where子句中。

 

1,字符函数(varchar

 

   字符是大小写敏感的

   转小写 lower(‘...’)

   转大写 upper(‘...’)

   首字母大写 initcap(‘...’)

   dual表,是专门用于函数测试和运算的,他只有一条记录    

   字符串拼接 concat(‘...’,’....’)

   求指定子串 substr(‘...’,起始位置,取字符个数)(起始位置可以为负)

   求制定字符串的长度length(‘……’)

   可以使用"-"表示从右向左取,取的时候可以从左往友取。

例:

       select upper(‘test’) from dual;

    select first_name from s_emp where upper(first_name)=’GEORGE’;

select substr(first_name,-2,2) sub from s_emp;(取后两个)

       select substr(first_name,2,2) sub from s_emp;(取前两个)

 

2,数值函数(number

 

   四舍五入 round(数据,保留小数点后几位)

   可以用负数表示小数点前,0,表示小数点后第一位,也就是保留个位,-1表示个位(保留到十   位)。

   例:select round(15.36,1) from dual;

   结果:15.4

 

   截取数字函数 trunc(数据,保留的位数(小数点后位数)) 截取个位之后补0

   例:select trunc(123.456,-1) from dual; 保留倒十位

   结果120

 

3,日期函数

 

   日期格式,

    全日期格式 世纪信息,年月日,时分秒。

    缺省日期格式,日-- dd-mon-rr

日期类型是可以进行数学运算的,+1,是下一天,-1,是上一天,数据库会对数据所隐式的转换。

 

   修改当前会话的日期格式,会按照指定的格式输出日期

   alter session set nls_date_format='yyyy mm dd hh24:mi:ss';

 

   返回当前日期 sysdate

   例:select sysdate+20 from dual;

   

   日期是格式敏感的

   求两个日期间相隔了多少个月 months_between(date1,date2)

   加减指定数量的月份 add_months(date,月数),月数可以为负,负值就是减去相应的月数。

   从下周开始的日期加一天 next_day(date,天数)

 

   例:select next_day(sysdate,2) from dual;

   返回月末的日期 last_day(date)

 

   截取日期 trunc(date,'年或月或日或时分秒')

   例:select trunc(add_months(sysdate,1),'month') from dual;

 

4,不同数据类型间转换函数

 

   将日期转成字符 tochar(date,'日期格式')

   日期格式要用有效格式,格式大小写敏感 'yyyy mm dd hh24:mi:ss','year'(全拼的年),'mm'(数字表示的月) 'month'(全拼的月)'day'(星期的全拼)'ddspth' (日期的全拼) 'yy mm dd'’rr-mm-dd’(会根据年份判断世纪)

   例:select to_char(sysdate,'yyyy mm dd hh24:mi:ss') from dual;

 

   将字符转换成数字 to_number('...')(可以加第二参数,第二参数指定定数字进制)

  

   将数字转字符to_char(number'fmt')  fmt是数字格式

 

   将字符串转成日期 to_date('...','日期格式')

   例:select  to_char(to_date('2006 11 03','yyyy mm dd'),'dd-month-yy')

from dual

 

5,函数嵌套

 

例:select  to_char(to_date('2006 11 03','yyyy mm dd'),'dd-month-yy')

from dual

你可能感兴趣的:(Oracle)