有關日期的SAP函式使用

fog911811發表於2012-07-03
文章摘要:SCAL函式組日曆功能有以下8個函式:1)DATE_COMPUTE_DAY 根據日期返回的星期值:根據輸入一個日期,返回該日期是每週中第幾個,注意週日是每週的第7天,週一是每週的第1天.其實這個函式很簡單,就是利用每週7天的原理,進行除得到餘數,標準的函式是以週日為第一天,所以增加了判斷IF DAY_P > 1. DAY_P = ...

SCAL函式組日曆功能有以下8個函式:
1)DATE_COMPUTE_DAY 根據日期返回的星期值:根據輸入一個日期,返回該日期是每週中第幾個,注意週日是每週的第7天,週一是每週的第1天.其實這個函式很簡單,就是利用每週7天的原理,進行除得到餘數,標準的函式是以週日為第一天,所以增加了判斷
IF DAY_P > 1.
     DAY_P = DAY_P - 1.
ELSE.
     DAY_P = DAY_P + 6.
ENDIF.
如果按我國習慣,週日為第1天時,則判斷可以變成:
IF DAY_P < 1.
     DAY_P = DAY_P + 7.
ENDIF.
2)DATE_CONVERT_TO_FACTORYDATE 根據日期返回工廠日曆日期:有些國家有自己的傳統節日,或者有些企業工作日有些不同,比如六天制,七天制,所以可以設定不同的工廠日曆,該函式則是輸入一個日期、工廠日曆標識、工作日計算方法的標識(+與-兩種情況,+表示如果輸入的日期在工廠日曆中並非工作日,則返回的日期為輸入日期的後一個工作日,-表示如果輸入的日期在工廠日曆中並非工作日,則返回的日期為輸入日期的前一個工作日),輸出轉化為工廠日曆日期的日期(如果輸入日期為工廠日曆中的工作日,則返回輸入日期,如果不是,則是前/後一個工作日)、指定日曆中的工作日數(輸入日期在工廠日曆中的工作日的順序,這跟工廠日期的“工廠日期開始”有關,空時預設為0,第1個工作日="工廠日期開始"+1)、表示某日期是否為工作日的標誌(如果為工作日則為空,否則將是輸入工作日計算方法的標識)
3)DATE_GET_WEEK 返回某日期所在的禮拜:根據輸入日期,返回該日期所在年份中的週數,注意週日是第7天,如果該週日在哪一年,則相應周的其他日期也在哪一年。比如2008-12-31是週三,該周的週日是2009-01-04是2009年的第一週,所以輸入2008-12-31時,返回是200901。
4)EASTER_GET_DATE 返回一個年度的復活節日期(復活節,復活節星期日):輸入年份,返回當年復活節的日期。耶穌被釘死在十字架上,第三天身體復活,復活節因此得名。復活節是基督宗教最重大的節日,重要性超過聖誕節,宗教起源與節期在歐美各國。節期大致在3月22日至4月25日之間。
5)FACTORYDATE_CONVERT_TO_DATE 根據一個工廠日曆日期返回的日期:輸入工廠日曆ID與工作日的序列號,返回工作日的日期,工作日的序列號與“工廠日期開始”相關,即輸入的工作日序列號必須大於等於“工廠日期開始”,否則返回空值。
6)HOLIDAY_CHECK_AND_GET_INFO 檢查日期是否是公共假日並在需要時提供資訊:輸入一個日期、假日日曆 ID、屬性標識,輸出是否為假日的標記以及該假日的屬性。
7)LAST_FACTORYDATE_GET Calendar function: Return last factory date for a factory calendar:輸入工廠日期ID,返回最後一個工作日以及工作日數。
8)WEEK_GET_FIRST_DAY 返回一週的第一天:輸入年份與週數,返回該周的第1天,注意是從週一開始算。

相關文章