ZONED
ZONED 関数は、ゾーン 10 進数表現を返します。
数値からゾーン 10 進数に
>>-ZONED--------------------------------------------------------> >--(--numeric-expression--+--------------------------------------------+--)->< '-,--precision-integer--+------------------+-' '-,--scale-integer-'
ストリングからゾーン 10 進数に
>>-ZONED--------------------------------------------------------> >--(--string-expression--+------------------------------------------------------+--)->< '-,--precision--+------------------------------------+-' '-,--scale--+----------------------+-' '-,--decimal-character-'
日付/時刻→ 10 進数
>>-ZONED--------------------------------------------------------> >--(--datetime-expression--+----------------------------+--)--->< '-,--precision--+----------+-' '-,--scale-'
ZONED 関数は、次のもののゾーン 10 進数表現を戻します。
- 数値
- 10 進数の文字ストリング表現またはグラフィック・ストリング表現
- 整数の文字ストリング表現またはグラフィック・ストリング表現
- 浮動小数点数の文字ストリング表現またはグラフィック・ストリング表現
- 10 進浮動小数点数の文字ストリング表現またはグラフィック・ストリング表現
- 日付
- 時刻
- タイム・スタンプ
数値からゾーン 10 進数に
- numeric-expression
- 任意の組み込み数値データ・タイプの値を戻す式。
- precision
- 1 以上で 63 以下の値を持つ整数定数。
デフォルトの精度 は、数値式 のデータ・タイプによって決まります。
- 5 (最初の引数が短整数の場合)
- 11 (最初の引数が長整数の場合)
- 19 (最初の引数が 64 ビット整数の場合)
- 15 (最初の引数が浮動小数点数、10 進数、数字、または位取りがゼロ以外の 2 進数の場合)
- 31 (10 進浮動小数点の場合)
- scale
- 0 以上で精度 以下である整数定数。 これを指定しないと、デフォルト値の 0 になります。
結果は、最初の引数が、精度 precision、位取り scale の 10 進数の列または変数に割り当てられたときに得られる数値と同じです。数値全体を表すのに必要な有効 10 進数字の桁数が precision-scale よりも大きい場合は、エラーが戻されます。最初の引数がヌルである可能性がある場合は、結果もヌルになる可能性があります。最初の引数がヌルの場合は、結果は NULL 値になります。
ストリングからゾーン 10 進数に
- string-expression
- 数値の文字ストリング表現またはグラフィック・ストリング表現の値を戻す式。 先行ブランクと末尾ブランクは除去され、結果のストリングは、浮動小数点数、10 進浮動小数点数、整数、または 10 進数の定数を形成する際の規則に合致している必要があります。
- precision
- 1 以上で 63 以下である整数定数。 これを指定しないと、デフォルト値の 15 になります。
- scale
- 0 以上で精度 以下である整数定数。 これを指定しないと、デフォルト値の 0 になります。
- decimal-character
- 数値の整数部分からストリング式 の小数桁数を区切るために使用された 1 バイトの文字定数を指定します。 この文字は、ピリオドかコンマとする必要があります。 2 番目の引数を指定しなかった場合は、デフォルトの小数点が使用されます。 詳しくは、小数点を参照してください。
結果は、CAST (string-expression AS NUMERICprecision,scale)) によって得られる数と同じです。 decimal-character の右側の桁数が位取り s より大きい場合は、末尾の桁が切り捨てられます。 string-expression の中の decimal-character より左側にある有効桁数 (数値の整数部分) が precision-scale より大きい場合は、エラーが戻されます。 小数点文字 引数の指定がある場合は、サブストリング内のデフォルト小数点文字は無効です。
日時からゾーン 10 進数に
- datetime-expression
- タイプ DATE、TIME、または TIMESTAMP の値を戻す式。
- precision
- 結果の精度を指定する、1 以上で 63 以下の整数定数。この指定がない場合、精度および位取りのデフォルトは、以下のように datetime-expression のデータ・タイプによって決まります。
- DATE の場合は、精度が 8 で、位取りが 0 です。結果は、日付を yyyymmdd で表した NUMERIC(8,0) 値になります。
- TIME の場合は、精度が 6 で、位取りが 0 です。結果は、時間を hhmmss で表した NUMERIC(6,0) 値になります。
- TIMESTAMP(tp) の場合は、精度が 14+tp で、位取りが tp です。 結果は、タイム・スタンプを yyyymmddhhmmss.nnnnnnnnnnnn で表した NUMERIC(14+tp、tp) 値になります。
- scale
- 0 以上で精度 以下である整数定数。 この指定がなく、precision が指定されている場合、デフォルトは 0 です。
結果は、CAST (datetime-expression AS NUMERICprecision,scale)) によって得られる数と同じです。 小数点の右側にある桁数が位取り s よりも多い場合、末尾から桁が切り捨てられます。 datetime-expression の小数点の左側にある有効数字 (数値の整数部分) の桁数が precision - scale より多い場合、エラーが戻されます。
この関数の結果は、精度が precision で位取りが scale であるゾーン 10 進数です。 最初の引数がヌルである可能性がある場合は、結果もヌルになる可能性があります。最初の引数がヌルの場合は、結果は NULL 値になります。
注記
代替構文: 精度を指定する場合、アプリケーションの移植性を拡張するには、CAST 指定を使用します。 詳しくは、CAST の指定を参照してください。
例
- ホスト変数 Z1 は、値が 1.123 の 10 進数ホスト変数であると想定します。
値として 1.12300000000000 が戻されます。SELECT ZONED(:Z1,15,14) FROM SYSIBM.SYSDUMMY1
- ホスト変数 Z1 は、値が 1123 の 10 進数ホスト変数であると想定します。
値として 1123.00 が戻されます。SELECT ZONED(:Z1,11,2) FROM SYSIBM.SYSDUMMY1
- 同様に、
値として 1123 が戻されます。SELECT ZONED(:Z1,4) FROM SYSIBM.SYSDUMMY1