SQL 10 函数 3 日期时间函数 - 4 日期增减(Oracle)

来源:互联网 发布:淘宝星级怎么看 编辑:程序博客网 时间:2024/06/05 01:53

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