日付および時刻式

日付/時刻式 は、コンテキストに従って、DATE 型、INT 型、INTERVAL 型、TIME 型、または TIMESTAMP 型の値に解決されます。 日付/時刻式には、以下のコンポーネントのうち、1 つ以上を組み込む必要があります。

次の表は、日付/時刻式で有効な算術演算の型を要約したものです。 演算式では TIME 変数を使用できないことに注意してください。 使用されるフォーマット記号の説明については、『日付、時刻、およびタイム・スタンプのフォーマット指定子』を参照してください。

表 1. 日付/時刻式での算術演算
オペランド 1 の型 演算子 オペランド 2 の型 結果の型 コメント
DATE - DATE INT INT は日数です。
DATE +/- NUMBER DATE NUMBER は、変数、リテラル、または数式のいずれであってもかまいません。これは日数として想定されます。
NUMBER + DATE DATE NUMBER は、変数、リテラル、または数式のいずれであってもかまいません。これは日数として想定されます。
TIMESTAMP - TIMESTAMP INTERVAL 後出の『INTERVAL 変数の使用方法』を参照してください。
DATE - TIMESTAMP INTERVAL 後出の『INTERVAL 変数の使用方法』を参照してください。
TIMESTAMP - DATE INTERVAL 後出の『INTERVAL 変数の使用方法』を参照してください。
TIMESTAMP +/- INTERVAL TIMESTAMP  
INTERVAL + TIMESTAMP TIMESTAMP  
DATE +/- INTERVAL TIMESTAMP  
INTERVAL + DATE TIMESTAMP  
INTERVAL +/- INTERVAL INTERVAL INTERVAL は同じ種類のスパン (月スパン間隔または秒スパン間隔のいずれか) でなければなりません。
INTERVAL *// NUMBER INTERVAL 例えば、3 年 3 カ月の INTERVAL を 2 で除算すると、その結果は、1 年 7 カ月に切り捨てられます。

INTERVAL 変数の使用方法

ここで、INTERVAL 型の概念はわかりにくいものです。 INTERVAL は、式に TIMESTAMP または INTERVAL がオペランドの 1 つとして含まれる場合にのみ機能します。 INTERVAL 型には、実質的に異なる 2 つのバージョンがあります。 1 つは 月スパン の間隔 (1 カ月より長い間隔) を、もう 1 つは 秒スパン の間隔 (1 カ月より短い間隔) を、それぞれ保存します。 INTERVAL 変数を宣言する際には書式パターンを提供する必要があり、その書式が EGL に INTERVAL が「月スパン」または「秒スパン」のいずれであるかを通知します。

月スパンの INTERVAL の正式な書式例を以下に示します。
diff01 INTERVAL("yyyy");
diff02 INTERVAL("MM");
diff03 INTERVAL("yyyyMM");
秒スパンの INTERVAL の正式な書式例を以下に示します。
diff04 INTERVAL ("ddhhmmssffff");
diff05 INTERVAL ("hhmmss");
diff06 INTERVAL ("ddhhmm");
diff07 INTERVAL ("ss");
2 つの書式を組み合わせることはできないため、次の書式は正しくありません。
diff08 INTERVAL ("yyyyMMdd");    // 無許可
diff09 INTERVAL ("MMddhhmmss");  // 無許可
INTERVAL の 2 つの実用例を以下に示します。
// 月スパンの間隔
diff01 INTERVAL ("yyyyMM");
t1 TIMESTAMP ("yyyyMM") = "200504";
t2 TIMESTAMP ("yyyyMM") = "200604";

diff01 = t2 - t1;
// diff01 は "+000100" (1 年) です

// 秒スパンの間隔
diff02 INTERVAL ("ddhhmmss");
t3 TIMESTAMP ("yyyyMMddhhmm") = "200604201027";
t4 TIMESTAMP ("yyyyMMddhhmm") = "200604201555";

diff02 = t4 - t3;
// diff02 は "+00052800" (5 時間 28 分) です

互換性に関する考慮事項

表 2. 互換性に関する考慮事項
プラットフォーム 問題
JavaScript 生成 サポートされるデータ型は、ANY、BIGINT、BIN (ただし、小数点以下の桁を含まない場合に限る)、Boolean、DataItem、DATE、DECIMAL、Delegate、Dictionary、FLOAT、INT、NUM、NUMBER、SMALLFLOAT、SMALLINT、STRING (ただし、サイズ制限を含まない場合に限る)、TIME、TIMESTAMP、NUM、MONEY、サービス・パーツ、インターフェース・パーツ、外部型 (ステレオタイプ JavaScript)、サポートされるデータ型による配列、 および非構造化の基本、例外、および SQL レコード・パーツです。

サポートされないデータ型は、ArrayDictionary、BIN (小数点以下の桁数を含むもの)、BLOB、CHAR、CLOB、DBCHAR、HEX、INTERVAL、MBCHAR、NUMC、STRING (サイズ制限を含むもの)、PACF、UNICODE、および構造化されたレコード・パーツです。


フィードバック