Oracle中可以直接使用加号“+”来进行日期的加法运算,其运算单位为“天”,比如date+3就表示在日期date的基础上增加3天;同理使用减号“-”则可以用来计算日期前的特定时间段的时间,比如date-3就宝石在日期date的3天前的日期。比如下面的SQL语句用于计算每个人出生日期3天后及10天前的日期:
SELECT FBirthday, FBirthday+3, FBirthday-10 FROM T_Person
可以使用换算的方式来进行以周、小时、钟等为单位的日期加减运算,比如下面的SQL语句用于计算每个人出生日期2小时10分钟后及3周后的日期:
SELECT FBirthday, FBirthday+(2/24+10/60/24), FBirthday+(3*7) FROM T_Person
使用加减运算可以很容地实现以周、天、小时、秒等单位的日期增减运算。不过由于每个月的天数不同,也就是在天和月之间不存在固定的换算率,所以无法使用加减运算实现以月我饿idanwei的计算,为此Oracle中提供了ADD_MONTHS()函数用于以月为单位的日期增减运算,为此Oracle中提供了ADD_MONTHS()函数用于月为单位的日期增减运算。格式如下:
ADD_MONTHS(date, number)
其中参数date为待计算的日期,参数number为要增加的月份数,如果number为负数则表示进行日期的减运算。下面的SQL语句用于计算每个人的出生日期两个月后及10个月前的日期:
SELECT FBirthday, ADD_MONTHS(FBirthday, 2), ADD_MONTHS(FBirthday, -10) FROM T_Person
综合使用ADD_MONTHS()函数和加、减运算则可以实现更加复杂的日期增减运算,比如下卖弄的SQL语句用于计算每个人的出生日期两个月零10天后级3个月零10小时的日期时间:
SELECT FBirthday, ADD_MONTHS(FBirthday, 2)+10 as bfd, ADD_MONTHS(FBirthday, -3)-(10/24) as afd FROM T_Person