天天看點

CONVERT_DATE_INPUT

通過 Function Module 将外部日期轉換為内部日期

所屬 Function Group : SCON

所屬 Package : SZP

DATA:date_input TYPE c LENGTH 10 VALUE ’2009-1-16′,       date_output TYPE sy-datum. CALL FUNCTION ‘CONVERT_DATE_INPUT’   EXPORTING     input                     = date_input     plausibility_check        = ‘X’   IMPORTING     output                    = date_output "output前是否檢查資料合理性   EXCEPTIONS     plausibility_check_failed = 1     wrong_format_in_input     = 2     OTHERS                    = 3. IF sy-subrc <> 0.   MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. WRITE:’date_input:’,date_input,’date_output:’,date_output.

結果:date_input: 2009-1-16  date_output: 2009-01-16

————

注意:

1、在R3 4.71 使用時會提示:函數子產品 CONVERT_DATE_INPUT 已過時 – 無法使用

2、如果外部日期包含除目前使用者日期分割符以外的非數字字元,則報錯 WRONG_FORMAT_IN_INPUT ,相關源代碼:

*—START

  DATE_CHAR-SEP = DATE_SEP.

  IF INPUT CN DATE_CHAR.

    MESSAGE S012 WITH DATE_SEP RAISING WRONG_FORMAT_IN_INPUT.

  ENDIF.

*—END

3、無法處理長度大于10或小于5的外部日期,相關源代碼:

  LENGTH = STRLEN( INPUT ).

  IF LENGTH GT 10

  OR LENGTH LT 5.

    MESSAGE S001 WITH DATE_MASK RAISING WRONG_FORMAT_IN_INPUT.

4、如果外部日期不包含日期分隔符,且外部日期長度不等于6位或8位時,報錯 WRONG_FORMAT_IN_INPUT

  IF INPUT CS DATE_SEP.

    SW_SEP = ‘X’.

  ELSE.

    SW_SEP = SPACE.

    IF  LENGTH NE 6                    " Jahr auffuellen

    AND LENGTH NE 8.

      MESSAGE S001 WITH DATE_MASK RAISING WRONG_FORMAT_IN_INPUT.

    ENDIF.

上一篇: sql語句