oracle日期函数的使用

MONTHS_BETWEEN日期函数的使用,是计算具体两个dates 的差下面载自oracle官方的说明:

Purpose

MONTHS_BETWEEN returns number of months between dates date1 and date2. If date1 is later than date2, then the result is positive. If date1 is earlier than date2, then the result is negative. If date1 and date2 are either the same days of the month or both last days of months, then the result is always an integer. Otherwise Oracle calculates the fractional portion of the result based on a 31-day month and considers the difference in time components date1 and date2.

大概的意思是说,MONTHS_BETWEEN函数返回date1和date2之间的月数,如果date1晚于date2,结果是一个正数,负责的话返回一个负数,如果date1和date2是一个月中的同一天,那么结果返回一个整数。oracle在处理

date1和date2的时候是以一个月31天来进行计算的。

Examples

The following example calculates the months between two dates:

SELECT MONTHS_BETWEEN 
   (TO_DATE('02-02-1995','MM-DD-YYYY'),
    TO_DATE('01-01-1995','MM-DD-YYYY') ) "Months"
    FROM DUAL;

    Months
----------
1.03225806
MONTHS_BETREEN 函数中的date1和date2必须是符合数据类型Date的数据,如果是其他数据则不能进行查询
还有在实际开发中,我们并不需要返回的结果是1.03225806类型的,我们会利用TRUNC函数进行处理
SELECT TRUNC (MONTHS_BETWEEN 
   (TO_DATE('02-02-1995','MM-DD-YYYY'),
    TO_DATE('01-01-1995','MM-DD-YYYY') ) )"Months"
    FROM DUAL;

    Months
----------
1
ADD_MONTHS函数使用说明
ADD_MONTHS(d,n)   
--时间点d再加上n个月     
ex.   
  select sysdate, ADD_MONTHS(sysdate,2) aa from dual;      
  SYSDATE    AA   
   ---------- ----------   
  21-SEP-07  21-NOV-07  
SELECT ADD_MONTHS(to_date('22-AUG-95','dd-mon-yy'),1) FROM DUAL; 
SELECT ADD_MONTHS(to_date('20030601','yyyymmdd'),1) FROM DUAL;
SELECT ADD_MONTHS(TO_DATE('20030601','yYYYMMDD'),1) FROM DUAL
TRUNC函数使用说明
1.TRUNC(for dates)
TRUNC函数为指定元素而截去的日期值。
其具体的语法格式如下:
TRUNC(date[,fmt])
其中:
date 一个日期值
fmt 日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去
下面是该函数的使用情况:
TRUNC(TO_DATE(’24-Nov-1999 08:00 pm’,’dd-mon-yyyy hh:mi am’))
=’24-Nov-1999 12:00:00 am’
TRUNC(TO_DATE(’24-Nov-1999 08:37 pm’,’dd-mon-yyyy hh:mi am’,’hh’)) =’24-Nov-1999 08:00:00 am’
trunc(sysdate,'yyyy') --返回当年第一天.
trunc(sysdate,'mm') --返回当月第一天.
trunc(sysdate,'d') --返回当前星期的第一天.


2.TRUNC(for number)
TRUNC函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。
其具体的语法格式如下
TRUNC(number[,decimals])
其中:
number 待做截取处理的数值
decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分
下面是该函数的使用情况:
TRUNC(89.985,2)=89.98
TRUNC(89.985)=89
TRUNC(89.985,-1)=80
注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值