Timestamp 型、DateTime 型の列の取り扱い

ODBC により SQL_TIMESTAMP と認識されるデータ型、IBM i 固有の型である Timestamp(Z) 型に関する注意事項を説明します。これは日付と時刻をひとまとめに格納する型です。

Timestamp型の列をLANSAデータ・ディクショナリのフィールドに読み込む際、このフィールドにASQN(Allow SQL NULL)属性が設定されていなければ、NULL値は省略値である「1900-01-01」になります。この値が目的に適っているかどうか、確認する必要があります。

フィールド長は19~29バイトで、プラットフォームによって異なります。

システム変数*TIMESTAMP_DFT、*TIMESTAMP_LOVAL、*TIMESTAMP_HIVALも使えます。IBM i以外のプラットフォームの場合、*TIMESTAMP_DFT、*TIMESTAMP_LOVALはどちらも「1900-01-01 00:00:00.000000」となります。一方、IBM iの場合は、「0001-01-01.00.00.00.000000」となります。*TIMESTAMP_HIVALはいずれのプラットフォームでも「9999-12-31」です。

*TIMESTAMP_XXX変数は、フィールド長が26バイト以上の場合に限り、省略値として指定できます。これより短いフィールドに適用したい場合は、長さ26バイトの仮想フィールドを用意し、変換してください。

英数字型のフィールドについては、次のいずれかの書式にする必要があります。

次のトピックも参照してください。

SQL Serverのデータ型Smalldatetimeの使い方

IBM i RDMLX外部ファイル