天天看點

SQL 10 函數 3 日期時間函數 - 4 日期增減(Oracle)

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