次の表は、日付/時刻式で有効な算術演算の型を要約したものです。 演算式では TIME 変数を使用できないことに注意してください。 使用されるフォーマット記号の説明については、『日付、時刻、およびタイム・スタンプのフォーマット指定子』を参照してください。
| オペランド 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 は、式に TIMESTAMP または INTERVAL がオペランドの 1 つとして含まれる場合にのみ機能します。 INTERVAL 型には、実質的に異なる 2 つのバージョンがあります。 1 つは 月スパン の間隔 (1 カ月より長い間隔) を、もう 1 つは 秒スパン の間隔 (1 カ月より短い間隔) を、それぞれ保存します。 INTERVAL 変数を宣言する際には書式パターンを提供する必要があり、その書式が EGL に INTERVAL が「月スパン」または「秒スパン」のいずれであるかを通知します。
diff01 INTERVAL("yyyy");
diff02 INTERVAL("MM");
diff03 INTERVAL("yyyyMM");
diff04 INTERVAL ("ddhhmmssffff");
diff05 INTERVAL ("hhmmss");
diff06 INTERVAL ("ddhhmm");
diff07 INTERVAL ("ss");
diff08 INTERVAL ("yyyyMMdd"); // 無許可
diff09 INTERVAL ("MMddhhmmss"); // 無許可
// 月スパンの間隔
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 分) です
| プラットフォーム | 問題 |
|---|---|
| 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、および構造化されたレコード・パーツです。 |