TIMESTAMP

データ形式

COBOL の出力用ホスト変数が SQL の TIMESTAMP カラムに対して宣言されると、日付は以下の形式で表現されます。
yyyy-mm-dd hh:mm:ss[.f[f[...]]]
ここで、小数点以下の桁の扱いはドライバの規定に従います。例として以下は西暦 1994年 5月 24日 12時 34分 00秒を表します。
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         SQL TYPE IS TIMESTAMP-RECORD.
  • timestamp1 の形式の場合は以下が適用されます。
    • OpenESQL はアプリケーションが SQL(DETECTDATE) 指令でコンパイルされていることを必要とします。
    • 日付・時刻をホスト変数に転記する際には以下の形式で値を設定します。
      • 時刻のみを指定する場合には以下の形式:
        {t 'hh:mm:ss'} 
      • 日付と時刻を指定する場合には以下の形式:
        {ts 'yyyy-mm-dd
        													hh:mm:ss[.f[f[...]]]'
        以下にコーディング例を示します。
        $set sql(dbman=odbc, detectdate) 
         01 timestamp1 pic x(26).
          . . . 
             move "{ts'1965-11-02 12:08:30'}" to timestamp1 
             exec sql 
                 insert into emp (TransDate) values (:timestamp1) 
             end-exec 
  • timestamp2 の形式の場合は特別な接頭文字を必要とせずに日付・時刻を示す文字列を転記します。以下にコーディング例を示します。
    01 timestamp2 SQL TYPE IS TIMESTAMP.
      . . . 
         move "1965-11-02 08:12:56"  to timestamp2
         exec sql 
             insert into emp (TransDate) values (:timestamp2) 
         end-exec
  • timestamp3 の形式は TIMESTAMP SQL TYPE を使用します。
OpenESQL JVM マネージランタイム
OpenESQL で利用可能なホスト変数定義に加えて、次の定義も OpenESQL JVM マネージランタイムでは利用可能です。
01 timestamp5         type java.sql.Timestamp.
DB2 ECM

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