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 JVM Managed Runtime
すべてのデータベースおよび OpenESQL に対して有効な定義に加えて、次の定義も OpenESQL JVM Managed Runtime に対して有効となります。
01 timestamp5         type java.sql.Timestamp.
DB2 ECM

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