2項算術演算子の結果のデータ型を次のテーブルに示します。
UDTオペランドが関与する2項算術演算の結果のデータ型は、UDTの暗黙キャスト先の事前定義データ型の場合の結果データ型と同じです。
日時および間隔データ型を使用したバイナリ算術操作の結果データ型の詳細は、概要を参照してください。
| 左のオペランド | 右のオペランド | 使用する演算子 | 結果のデータ型 |
|---|---|---|---|
| 任意のデータ型 | 任意のデータ型 | ** | FLOAT |
| DATE | BYTEINT SMALLINT INTEGER BIGINT |
+ - | DATE 日付の結果の値がDATE型に許容されている範囲内にないとき、エラーが報告されます。その範囲とは、西暦の1年から9999年までの任意の日付です。 |
| BYTEINT SMALLINT INTEGER |
* / MOD | INTEGER DATEのこれらの演算はエラーを報告しませんが、結果は、通常意味がありません。 |
|
| BIGINT | * / MOD | BIGINT DATEのこれらの演算はエラーを報告しませんが、結果は、通常意味がありません。 |
|
| DECIMAL(k,j) | + - | DATE DATEのこれらの演算はエラーを報告しませんが、結果は、通常意味がありません。 日付の値に対する加算または減算の場合、小数の小数点以下は切り捨てられます。 日付の結果の値がDATE型に許容されている範囲内にないとき、エラーが報告されます。その範囲とは、西暦の1年から9999年までの任意の日付です。 |
|
| * / MOD | DECIMAL(p,j) DATEのこれらの演算はエラーを報告しませんが、結果は、通常意味がありません。 pの値の詳細について、DECIMALの結果のデータ型を参照してください。 |
||
| NUMBER(k,j) NUMBER(k) NUMBER(*,j) NUMBER |
+ - | DATE DATEのこれらの演算はエラーを報告しませんが、結果は、通常意味がありません。 日付の値に対する加算または減算の場合、小数の小数点以下は切り捨てられます。 日付の結果の値がDATE型に許容されている範囲内にないとき、エラーが報告されます。その範囲とは、西暦の1年から9999年までの任意の日付です。 |
|
| * / MOD | NUMBER | ||
| FLOAT | * / + - MOD | FLOAT | |
| DATE | - | INTEGER 2つの日付の差は、これらの日付の間の日数です。これは、値の数値の差ではないことに注意する必要があります。 |
|
| + * / MOD | INTEGER DATEのこれらの演算はエラーを報告しませんが、結果は、通常意味がありません。 |
||
| CHAR(n) VARCHAR(n) |
* / + - MOD | FLOAT DATEのこれらの演算はエラーを報告しませんが、結果は、通常意味がありません。 算術演算子の引数が文字列の場合には、最初のアクションとしてその文字列から浮動小数点の数値への変換が試みられます。この変換が失敗した場合には、エラーが報告されます。 |
|
| BYTEINT SMALLINT INTEGER |
BYTEINT SMALLINT INTEGER |
* / + - MOD | INTEGER |
| BIGINT | * / + - MOD | BIGINT | |
| DECIMAL(k,j) | * / + - MOD | DECIMAL(p,j) pの値の詳細について、DECIMALの結果のデータ型を参照してください。 |
|
| NUMBER(k,j) NUMBER(k) NUMBER(*,j) NUMBER |
* / + - MOD | NUMBER | |
| FLOAT | * / + - MOD | FLOAT | |
| CHAR(n) VARCHAR(n) |
* / + - MOD | FLOAT 算術演算子の引数が文字列の場合には、最初のアクションとしてその文字列から浮動小数点の数値への変換が試みられます。この変換が失敗した場合には、エラーが報告されます。 |
|
| DATE | + | DATE 日付の結果の値がDATE型に許容されている範囲内にないとき、エラーが報告されます。その範囲とは、西暦の1年から9999年までの任意の日付です。 |
|
| - | エラー | ||
| * / MOD | INTEGER DATEのこれらの演算はエラーを報告しませんが、結果は、通常意味がありません。 |
||
| BIGINT | BYTEINT SMALLINT INTEGER BIGINT |
* / + - MOD | BIGINT |
| DECIMAL(k,j) | * / + - MOD | DECIMAL(p,j) pの値の詳細について、DECIMALの結果のデータ型を参照してください。 |
|
| NUMBER(k,j) NUMBER(k) NUMBER(*,j) NUMBER |
* / + - MOD | NUMBER | |
| FLOAT | * / + - MOD | FLOAT | |
| CHAR(n) VARCHAR(n) |
* / + - MOD | FLOAT 算術演算子の引数が文字列の場合には、最初のアクションとしてその文字列から浮動小数点の数値への変換が試みられます。この変換が失敗した場合には、エラーが報告されます。 |
|
| DATE | + | DATE 日付の結果の値がDATE型に許容されている範囲内にないとき、エラーが報告されます。その範囲とは、西暦の1年から9999年までの任意の日付です。 |
|
| - | エラー | ||
| * / MOD | BIGINT DATEのこれらの演算はエラーを報告しませんが、結果は、通常意味がありません。 |
||
| DECIMAL(m,n) | BYTEINT SMALLINT INTEGER BIGINT |
+ - * | DECIMAL(p,n) pの値の詳細について、DECIMALの結果のデータ型を参照してください。 |
| / MOD | DECIMAL(m,n) | ||
| DECIMAL(k, j) | + - | DECIMAL(min(p,(1+max(n,j)+max(m -n,k-j))),max(n,j)) pの値の詳細について、DECIMALの結果のデータ型を参照してください。 |
|
| * | DECIMAL(min(p,m +k),(n+j)) pの値の詳細について、DECIMALの結果のデータ型を参照してください。 |
||
| / MOD | DECIMAL(p,max(n,j)) pの値の詳細について、DECIMALの結果のデータ型を参照してください。 |
||
| NUMBER(k,j) NUMBER(k) NUMBER(*,j) NUMBER |
* / + - MOD | NUMBER | |
| FLOAT | * / + - MOD | FLOAT | |
| CHAR(n) VARCHAR(n) |
* / + - MOD | FLOAT 算術演算子の引数が文字列の場合には、最初のアクションとしてその文字列から浮動小数点の数値への変換が試みられます。この変換が失敗した場合には、エラーが報告されます。 |
|
| DATE | + | DATE 日付の値に対する加算または減算の場合、小数の小数点以下は切り捨てられます。 日付の結果の値がDATE型に許容されている範囲内にないとき、エラーが報告されます。その範囲とは、西暦の1年から9999年までの任意の日付です。 |
|
| - | エラー | ||
| * | DECIMAL(p,n) DATEのこれらの演算はエラーを報告しませんが、結果は、通常意味がありません。 pの値の詳細について、DECIMALの結果のデータ型を参照してください。 |
||
| / MOD | DECIMAL(m,n) DATEのこれらの演算はエラーを報告しませんが、結果は、通常意味がありません。 |
||
| NUMBER(m,n) NUMBER(m) NUMBER(*,n) NUMBER |
BYTEINT SMALLINT INTEGER BIGINT |
* / + - MOD | NUMBER |
| DECIMAL(k,j) | |||
| FLOAT | * / + - MOD | FLOAT | |
| CHAR(n) VARCHAR(n) |
FLOAT 算術演算子の引数が文字列の場合には、最初のアクションとしてその文字列から浮動小数点の数値への変換が試みられます。この変換が失敗した場合には、エラーが報告されます。 |
||
| DATE | + | DATE 日付の値に対する加算または減算の場合、小数の小数点以下は切り捨てられます。 日付の結果の値がDATE型に許容されている範囲内にないとき、エラーが報告されます。その範囲とは、西暦の1年から9999年までの任意の日付です。 |
|
| - | エラー | ||
| * | NUMBER DATEのこれらの演算はエラーを報告しませんが、結果は、通常意味がありません。 |
||
| / MOD | NUMBER DATEのこれらの演算はエラーを報告しませんが、結果は、通常意味がありません。 |
||
| NUMBER(k,j) NUMBER(k) NUMBER(*,j) NUMBER |
* / + - MOD | NUMBER | |
| FLOAT | BYTEINT SMALLINT INTEGER BIGINT DECIMAL(k,j) NUMBER(k,j) NUMBER(k) NUMBER(*,j) NUMBER FLOAT |
* / + - MOD | FLOAT |
| DATE | * / + - MOD | FLOAT DATEのこれらの演算はエラーを報告しませんが、結果は、通常意味がありません。 |
|
| CHAR(n) VARCHAR(n) |
* / + - MOD | FLOAT 算術演算子の引数が文字列の場合には、最初のアクションとしてその文字列から浮動小数点の数値への変換が試みられます。この変換が失敗した場合には、エラーが報告されます。 |
|
| CHAR(n) VARCHAR(n) |
BYTEINT SMALLINT INTEGER BIGINT DECIMAL(k,j) NUMBER(k,j) NUMBER(k) NUMBER(*,j) NUMBER FLOAT CHAR(n) VARCHAR(n) |
* / + - MOD | FLOAT 算術演算子の引数が文字列の場合には、最初のアクションとしてその文字列から浮動小数点の数値への変換が試みられます。この変換が失敗した場合には、エラーが報告されます。 |
| DATE | * / + - MOD | FLOAT DATEのこれらの演算はエラーを報告しませんが、結果は、通常意味がありません。 算術演算子の引数が文字列の場合には、最初のアクションとしてその文字列から浮動小数点の数値への変換が試みられます。この変換が失敗した場合には、エラーが報告されます。 |