add_months

ADD_MONTHS是運算函式,函式將一個日期上加上一指定的月份數,所以,日期中的日是不變的。然而,如果開始日期是某月的最後一天,那么,結果將會調整以使返回值仍對應新的一月的最後一天。如果,結果月份的天數比開始月份的天數少,那么,也會向回調整以適應有效日期。

基本介紹

  • 外文名:add_months
  • 屬於:日期運算函式
  • 注意:日期中的日將是不變的
  • 包括:也會向回調整以適應有效日期
基本信息,注意,功能,

基本信息

日期運算函式
ADD_MONTHS(d,n)--時間點d再加上n個月
例子:
select sysdate, add_months(sysdate,2) aa from dual;
SYSDATE AA
21-SEP-07 21-NOV-07

注意

其語法格式如下:
ADD_MONTHS(date,months)
其中:
date 一個日期數值
months 要加上的月份數。要減去的月份數用負數
下面的例子解釋了該函式的使用:
ADD_MONTHS(TO_DATE(’15-Nov-1961’,’d-mon-yyyy’),1) =’15-Dec-1961
ADD_MONTHS(TO_DATE(’30-Nov-1961’,’d-mon-yyyy’),1) =’31-Dec-1961
ADD_MONTHS(TO_DATE(’31-Jan-1999’,’d-mon-yyyy’),1) =’28-Feb-1999
注意,在上面的第三個例子中,函式將不得不將31日往回調整為28日,已使結果對應新一月的最後一天。因為,1999年的2月份只有28天。在第二個例子中,則是從30往後調整為31,也同樣是為了保持對應的最後一天。

功能

ADD_MONTHS函式作為它的第一個參數一個DATETIME或DATE的表達,需要第二個的整數參數,指定的月數添加到第一個參數值。 第二個參數可以是正或負。
返回的值是第一個參數和一個間隔單位的月份值的月數,第二個參數指定的日期或DATETIME值的總和。
返回的數據類型取決於第一個參數的數據類型:如果第一個參數的計算結果為一個DATE值,ADD_MONTHS返回一個日期值。如果第一個參數的計算結果為一個DATETIME值,ADD_MONTHS分數(5)值返回一個DateTime的一年, 一天中的第一個參數為時間單位相同的價值觀。 如果一天 一個月的時間單位,並在第一個參數指定月份的最後一天,如果一個月少天比一天中的第一個參數,則返回值是最後一天所產生的一個月。 否則,返回值,作為第一個參數月份的同一天。
返回值可以在不同的年份,如果一個月後比12月的一年中的第一個參數(或負早於1月的第二個參數,)。
下面的查詢調用的ADD_MONTHS函式兩次投影子句中,作為參數使用列表達式。 這裡的列名指示列的數據類型,並DBDATE設定MDY4 /:
選擇a_serial,b_date,ADD_MONTHS(b_date,a_serial) c_datetime,ADD_MONTHS(c_datetime,a_serial)從mytab WHERE a_serial = 7;在這個例子ADD_MONTHS返回DATE和DATETIME值中: a_serial 7 b_date 07/06/2007 (表達)02/06/2008 c_datetime 2007-10-06 16:47:49.00000 (表達)2008-05-06 16:47:49.00000如果您使用的Informix ®主機變數來存儲ADD_MONTHS的參數,但在準備時間不知道該參數的數據類型,假定的數據類型為datetime年分數(5)。 如果在運行時,已經準備的發言後,用戶提供了一個DATE值的主機變數,錯誤-9750發出。 要避免這個錯誤,使用強制指定的宿主變數的數據類型,在這個程式片段:的sprintf(查詢“,”選擇ADD_MONTHS(日期:6)從mytab“嗎?); EXEC SQL準備selectq:查詢; EXEC SQL聲明selectq select_cursor游標;使用EXEC SQL開放select_cursor:hostvar_date_input; EXEC SQL FETCH select_cursor到:var_date_output;

相關詞條

熱門詞條

聯絡我們