日期:2014-05-16  浏览次数:20506 次

3.常用的ORACLE函数【日期函数】 .

一些ORACLE常用函数【日期函数】
【add_months,last_day,months_between,new_time,next_day,round,sysdate,trunc】


<1>ADD_MONTHS
语法:  ADD_MONTHS(d,x)
功能:  返回日期d加上x个月后的月份。x可以是任意整数。
如果结果日期中的月份所包含的天数比d日期中的“日”分量要少。
(即相加后的结果日期中的日分量信息已经超过该月的最后一天,
例如,8月31日加上一个月之后得到9月31日,而9月只能有30天)返回结果月份的最后一天。
使用位置: 过程性语言和SQL语句。
ADD_MONTHS 增加或减去月份
SQL> select to_char(add_months(to_date('201209','yyyymm'),2),'yyyymm') 加月份,
to_char(add_months(to_date('201209','yyyymm'),-2),'yyyymm') 减月份 from dual;
加月份    减月份
------    -------
201211    201207

<2>LAST_DAY
语法: LAST_DAY(d)
功能: 计算包含日期的d的月份最后一天的日期.这个函数可以用来计算当月中剩余天数.
使用位置: 过程性语言和SQL语句。
LAST_DAY:返回日期的最后一天
SQL> select to_char(sysdate,'yyyy.mm.dd') 当前日期,
to_char((sysdate)+1,'yyyy.mm.dd') 当前日期加减 from dual;
当前日期     当前日期加减
----------   ----------
2012.09.17   2012.09.18

SQL> select last_day(sysdate) 本月最后一天 from dual;
本月最后一天
------------------
2012/9/30 14:57:56

<3>MONTHS_BETWEEN
语法:  MONTHS_BETWEEN(date 1,date2)
功能:  计算date 1和date2之间月数.如果date 1,date2这两个日期中日分量信息是相同的,或者这两个日期都分别是所在月的最后一天,那么返回的结果是一个整数,否则包括一个小数,小数为富余天数除以31.
使用位置: 过程性语言和SQL语句。
MONTHS_BETWEEN(date2,date1): 给出date2-date1的月份
SQL>select months_between(to_date('2012/05/20','yyyy/mm/dd'),
to_date('2005/09/10','yyyy/mm/dd')) mon_betw from dual;
MON_BETW
---------
80.3225806451613

<4>NEW_TIME
语法:  NEW_TIME(d,zone1,zone2)
功能: 计算当时区zone1中的日期和时间是s时候,返回时区zone2中的日期和时间. zone1和zone2是字符串.
使用位置: 过程性语言和SQL语句。
NEW_TIME(date,'this','that'):给出在this时区=other时区的日期和时间
NEW_TIME   (d,'tz1','tz2')
d::一个有效的日期型变量
tz1   &   tz2::下表中的任一时区
时区1   时区2       说明
AST       ADT           大西洋标准时间
BST       BDT           白令海标准时间
CST       CDT           中部标准时间
EST       EDT           东部标准时间
GMT                     格林尼治标准时间
HST       HDT           阿拉斯加—夏威夷标准时间
MST       MDT           山区标准时间
NST                     纽芬兰标准时间
PST       PDT           太平洋标准时间
YST       YDT           YUKON标准时间
SQL> select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') bj_time,to_char(new_time
(sysdate,'PDT','GMT'),'yyyy/mm/dd hh24:mi:ss') los_angles from dual;