TIMESTAMP

データ フォーマット

デフォルトのタイムスタンプと代替タイムスタンプは、値の形式が異なります。DB2 ECM を使用する場合は、形式の違いに関する IBM の資料を参照してください。OpenESQL の詳細については、TSTAMPSEP SQL コンパイラ指令オプションのトピックを参照してください。

たとえば、サポートされている時間形式は次のとおりです。
yyyy-mm-dd hh:mm:ss[.f[f[...]]]
ここでは、小数点以下の桁数はドライバーで定義されます。この形式の値は次のようになります。
1994-05-24 12:34:00.000

ホスト変数フォーマット

OpenESQL および DB2 ECM
01 timestamp1         PIC X(29).
01 timestamp2         SQL TYPE IS TIMESTAMP.

timestamp2の形式は TIMESTAMP SQL TYPE を使用します。

OpenESQL
01 timestamp3         PIC X(n).
01 timestamp4         SQL TYPE IS TIMESTAMP-RECORD.
timestamp1形式
  • 次の形式を使用して、タイムスタンプ データをホスト変数に移します。
    MOVE "yyyy-mm-dd hh:mm:ss" TO timestamp1
  • DETECTDATE SQL コンパイラ指令オプションのトピックを参照して、アプリケーションに適用されるかどうかを確認してください。
timestamp2
  • 次の形式を使用して、タイムスタンプ データをホスト変数に移します。
    MOVE "yyyy-mm-dd hh:mm:ss" TO timestamp2
  • 推奨される形式。可能な限り使用します。
  • TIMESTAMP SQL TYPE を使用します。
  • timestamp1形式と似ていますが、Enterprise Developer バージョン 2.3 以降を使用している場合は、入力ホスト変数の処理に DETECTDATE は必要ありません。
timestamp3形式
アプリケーションが ODBC エスケープ シーケンスを使用してタイムスタンプ データをホスト変数に移動する場合は、この形式を使用します。
注:この形式は、Enterprise Developer バージョン 2.3 以降では非推奨です。代わりに、TSTAMPDEP SQL コンパイラ指令オプションを使用して、ODBC エスケープ シーケンスの使用を避けることを強く推奨します。
  • 次の形式を使用して、タイムスタンプ データをホスト変数に移します。
    MOVE "{ts 'yyyy-mm-dd hh:mm:ss[.f[f[...]]]'}"
         TO timestamp3
  • DETECTDATE SQL コンパイラ指令オプションを使用してアプリケーションをコンパイルし、OpenESQL が PIC X フィールドを評価して入力ホスト変数内で使用できるタイムスタンプ形式を探します。
  • n の大きさが、タイムスタンプ値と ODBC エスケープ シーケンスで使用される文字を含むのに十分であることを確認します。
  • 出力ホスト変数値は、ODBC エスケープ シーケンスなしで返されます。
timestamp4形式
  • 次の形式を使用して、タイムスタンプ データをホスト変数に移します。
    MOVE yyyy TO host-var-year
    MOVE mm TO host-var-month
    MOVE dd TO host-var-day
    MOVE hh TO host-var-hour
    MOVE mm TO host-var-minute
    MOVE ss TO host-var-sec
    MOVE ff TO host-varc-fra
  • TIMESTAMP-RECORD SQL TYPE を使用します。
OpenESQL .NET Managed Runtime
すべてのデータベースに対して有効な定義と OpenESQL に対して有効な定義に加えて、次の定義も OpenESQL .NET Managed Runtime に対して有効となります。
01 timestamp5         type System.DateTime.
DB2 ECM

TIMESTAMP データ タイプの最大長は 26 文字です。