HELLO,WORLD

oracle函数应用

----Oracle中的函数

oracle中函数的分类:

--第一种:日期函数
--第二种: 字符函数
--第三种: 数学函数
--第四种: 转换函数
--第五种: 分析函数

-----------------------------------------------------------------------------------
*********  dual: 虚表, 该表并不存在.它存在的目的是为了保证语句的语法正确
---在使用函数时,如果不确定数据来自至于哪一张表,就可以查询虚表,保证语法正确

************************************
常用日期函数:
sysdate   --获得系统时间
add_months(); --在当前时间上加上几个月,形成一个新的时间
months_between(); --计算两个时间之间,间隔了几个月
last_day()  --得到这个月的最后一天的日期
next_day(); ---得到下一个星期几是哪一个日期
extract() --得到日期中指定部份的值
************************************
sysdate   --获得当前系统时间的函数

select sysdate from dual;
************************************
add_months() --在指定日期上加上指定月份形成一个新的日期

select add_months(sysdate,-10) from dual; --减去10个月
select add_months(date'2011-4-2',3) 日期 from dual;
select '2015-4-1' 入学日期,add_months(date'2015-4-1',6) 就业时间 from dual;

select name,bir 原有时间,add_months(bir,5) 新日期 from info2;

***************************************
months_between()  --计算两个日期之间,相差的月份

floor(浮点数);--得到一个小于当前浮点数的最大的整数         floor(12.34).

select months_between(date'2015-10-20',date'2015-5-20') from dual;
select months_between(sysdate,date'2015-1-1') 相差的月份 from dual;
select floor(months_between(sysdate,date'1979-9-12')/12) 年龄 from dual;
select name,bir,floor(months_between(sysdate,bir)/12)||'' 年龄 from info2;

select name,bir,floor(months_between(sysdate,bir)/12)||'' 年龄 from info2 order by 年龄 asc;

select name,bir,floor(months_between(sysdate,bir)/12)||'' 年龄 from info2 order by bir desc;

********************************************
last_day() --获得指定日期中的这一个月的最后一天的日期

select last_day(sysdate) from dual;
select last_day(date'2011-12-1') from dual;

**********************************************
next_day()  --获得下一个星期几,是哪一个日期    `1  星期天   2 星期一.......7 星期六

select next_day(sysdate,2) from dual;
select next_day(date'2015-1-2',6) from dual;

*********************************************
extract()    ---获得一个日期,指定部份的值

select extract(year from sysdate)||'' 年份 from dual;--查询日期中的年份
select extract(month from sysdate) 月份 from dual;--查询日期中的月份
select extract(day from sysdate) 日期 from dual;--查询日期中的日期
select extract(month from date'2011-12-1') 月份 from dual;--查询日期中的月份

********************************************************************************************************
sysdate
add_months
month_between
last_day
next_day
extract
-------------------------------------------------------------------------------------------------------------------------
字符函数

length()--计算长度
upper() ---将字母变为大写
lower() ---将字母变为小写
ltrim() ----去掉字符左侧的空格
rtrim() ----去掉字符右侧的空格
trim()-----去掉两端的空格
lpad() ----从左向右填充字符
rpad() ----从右向左填充字符
substr() ---截取字符串
replace() --替换

*************************
--length() 
select length('abcd') from dual;
select name,length(name) from info2;
*************************
--ltrim()
--rtrim()
--trim()
select '                            abc' from dual;
select ltrim( '                            abc') from dual;

************************
--upper()
--lower();
select upper('abA汉字12') from dual;
select lower('abA汉字12') from dual;

***********************
--lpad()  从左向右填充字符
--rpad() 从右向左填充字符

select lpad('hello Christina',10,'*') from dual; --字符串,只显示10个字符,如果不够10个从左向右填充*
select rpad('abc',10,'*') from dual;
**********************
--substr(字符串,第几个字符,取几个长度) --截取字符串
select substr('你好张三丰,我是李四',3,3) from dual;

***********************
replace(字符串,指定字符,新内容) --把字符串中的指定字符,用新的内容替换

select replace('大家好我是张三','张三','李四') from dual;

 

posted @ 2016-06-30 10:04  秦正全  阅读(185)  评论(0编辑  收藏  举报