2015年9月14日 星期一

4GL 日期的運算

日期1-日期2 = 幾天
在 IBM Genero 4GL 程式語言中. 日期的運算可真是.不好用
以下程式代碼看看. 看不懂我也無法救你了.
注意. 在資料中通常我們會用   l_d1 like  abc_table.date01 方式來宣告變數. 可是在作運算時他很白痴的不會自動轉方Datetime 再作運算 所以我會先把資料庫欄位先存到我自己的變數 如下 l_d1 datetime year to day 這樣在作運算時比較不會出錯. 一出錯 你的 l_i1 就一定是 NULL 值


 
  define l_d1 datetime year to day
  define l_d2 datetime year to day
  define l_i1 interval day(5) to day
  define l_l2 interval month to month
  let l_d1 = '2002-01-01'
  let l_d2 = '2015-09-01'
  let l_i1=  l_d2-l_d1
  display  l_i1
  let l_l2 = interval(1) month to month
  let l_d1 = l_d1 +  interval(1) month to month    #加一個月的日期
  let l_d1 = l_d1 -  interval(1) month to month    #減一個月的日期
  let l_d1 = l_d1 +  interval(1) year to year    #加一個年的日期
 
 
  if l_i1 > interval(365) day(5) to day then    #判斷式的用法
    display "over 1 year"
  else
    display "Yes 1 year"   
  end if