SAPでは、多くのデータにタイムスタンプ(Timestamp)が付与されています。タイムスタンプは作成日時や更新日時を管理する上で欠かせない要素ですが、特にデータ型によっては、人間が一目で理解しにくい形式で保持されていることもあります。本記事では、SAPで扱われるタイムスタンプのデータ型や変換方法について初心者向けに丁寧に解説します。
1. タイムスタンプとは?
タイムスタンプとは、特定の電子データに付与される「日時」を示す情報のことです。例えば、以下のような用途で活用されます:
- データの登録日時
- データの更新日時
- システムへのアクセス時刻
SAPでは多くのテーブルでタイムスタンプが保持されていますが、そのデータ形式や意味を正しく理解することが重要です。
2. タイムスタンプの基礎知識
SAPで使用される時間基準には以下の3つがあります:
GMT(グリニッジ標準時)
- 世界標準とされていた時刻基準。
- 天体観測に基づいて決められた時間。
UTC(協定世界時)
- 現在の世界標準時。精度の高い原子時計を基に算出されます。
JST(日本標準時)
- 日本時間。UTCより+9時間。
SAPのタイムスタンプデータは通常、GMTまたはUTCに基づいて記録されています。
3. SAPで使用されるタイムスタンプのデータ型
SAPでは、タイムスタンプを以下の2つのデータ型で管理することが一般的です:
① RKE_TSTMP
- 形式:1990年1月1日 00:00 から起算した秒数 × 10000
- 特徴:人間には解読が難しい数値形式。
- 使用例:COSSテーブルの登録時刻(TIMESTMP列)。
② TZNTSTMPS
- 形式:略式UTCタイムスタンプ (YYYYMMDDhhmmss)
- 特徴:日付・時刻を表す文字列だが、区切り文字がなく判読が困難。
- 使用例:特定のトランザクションログや履歴データ。
4. タイムスタンプから日付・時刻への変換方法
タイムスタンプを日付・時刻に変換する際は、SAPが提供する汎用モジュールを利用します。以下にそれぞれのデータ型に対応した変換方法を解説します。
① RKE_TIMESTAMP_CONVERT_OUTPUT
- 用途:RKE_TSTMP形式のタイムスタンプを変換。
- 出力:人間が理解できる日付・時刻形式。
- 使用例:ABAPコードをコピーする
DATA: lv_date TYPE sy-datum, lv_time TYPE sy-uzeit. CALL FUNCTION 'RKE_TIMESTAMP_CONVERT_OUTPUT' EXPORTING timestamp = coss-timestmp IMPORTING date = lv_date time = lv_time.
- 結果:COSSテーブルの登録時刻が「YYYY-MM-DD HH:MM:SS」の形式で出力されます。
② IB_CONVERT_FROM_TIMESTAMP
- 用途:TZNTSTMPS形式のタイムスタンプを変換。
- 出力:日付と時刻に分かれて取得。
- 使用例:ABAPコードをコピーする
DATA: lv_date TYPE sy-datum, lv_time TYPE sy-uzeit. CALL FUNCTION 'IB_CONVERT_FROM_TIMESTAMP' EXPORTING timestamp = '20231225123000' "例:2023年12月25日 12時30分 IMPORTING date = lv_date time = lv_time.
- 結果:「2023-12-25 12:30:00」の形式で出力されます。
5. タイムスタンプを理解して効率化しよう!
タイムスタンプは、システムのデータ管理やログ分析において重要な役割を果たします。本記事で紹介した変換方法を活用することで、データの可読性を向上させ、日常業務を効率化できます。
6. まとめ
SAPでタイムスタンプを扱う際、データ型の違いや変換方法を正しく理解することが重要です。RKE_TSTMPやTZNTSTMPSの形式を知り、適切な汎用モジュールを使用すれば、業務の効率化に大いに役立ちます。
コメント