您的位置:知识库 »

SAP内时间戳和日期时间的转换

作者: Barry.bai  来源: ChinaUnix  发布时间: 2008-10-23 17:07  阅读: 4050 次  推荐: 0   原文链接   [收藏]  

REPORT  z_barry_test.

TABLES: t001w,adrc .
DATA: date
LIKE sy-datum,
time
LIKE sy-uzeit,
tstamp
LIKE tzonref-tstamps.

SELECT SINGLE * FROM t001w WHERE werks = '0001'.
IF sy-subrc = 0.
SELECT SINGLE * FROM adrc WHERE addrnumber = t001w-adrnr . "time_zone
PERFORM date_to_timestamp USING
'20080808' '080808' adrc-time_zone
CHANGING tstamp.
WRITE tstamp.
ENDIF.
IF NOT tstamp IS INITIAL.
PERFORM timestamp_to_date USING tstamp adrc
-time_zone
CHANGING date time.
WRITE
/ : date,time .
ENDIF.

*&---------------------------------------------------------------------*
*& Form date_to_timestamp
*&---------------------------------------------------------------------*
* 日期+时间+时区 转变为 时间戳
*----------------------------------------------------------------------*
FORM date_to_timestamp USING i_date LIKE sy-datum
i_time
LIKE sy-uzeit
i_tzone
LIKE tzonref-tzone
CHANGING o_tstamp
LIKE tzonref-tstamps .
CONVERT DATE i_date TIME i_time INTO TIME STAMP o_tstamp TIME ZONE i_tzone.
CASE sy-subrc.
WHEN 8.
MESSAGE e000(oo)
WITH '时区错'.
WHEN 12.
MESSAGE e000(oo)
WITH '时间戳错误'.
WHEN OTHERS.
ENDCASE.
ENDFORM. "date_to_timestamp

*&---------------------------------------------------------------------*
*& Form TIMESTAMP_TO_DATE
*&---------------------------------------------------------------------*
* 时间戳+时区 转变为 日期和时间
*----------------------------------------------------------------------*
FORM timestamp_to_date USING i_tstamp LIKE tzonref-tstamps
i_tzone
LIKE tzonref-tzone
CHANGING o_date
LIKE sy-datum
o_time
LIKE sy-uzeit.
DATA: w_tzone
LIKE tzonref-tzone.
w_tzone
= i_tzone.
CONVERT TIME STAMP i_tstamp TIME ZONE w_tzone INTO DATE o_date TIME o_time.
CASE sy-subrc.
WHEN 8.
MESSAGE e000(oo)
WITH '时区错'.
WHEN 12.
MESSAGE e000(oo)
WITH '时间戳错误'.
WHEN OTHERS.
ENDCASE.
ENDFORM. "TIMESTAMP_TO_DATE

0
0

热门文章

    最新文章

      最新新闻

        热门新闻