私はTeradataテーブルを持っています。このテーブルでは、値が整数で、HOUR(2)TO MINUTEに変換する必要があります。Teradata:Interval HOUR(2)をMINUTEに変換中にエラーが発生しました
のTeradata documentationによるなど
私はTeradataテーブルを持っています。このテーブルでは、値が整数で、HOUR(2)TO MINUTEに変換する必要があります。Teradata:Interval HOUR(2)をMINUTEに変換中にエラーが発生しました
のTeradata documentationによるなど
を、私は以下の声明を試してみましたが、エラーのような間隔フィールドがオーバーフローを取得
CAST(CAST(col1 AS DECIMAL(18,0)) * INTERVAL '0000:01' MINUTE TO SECOND AS INTERVAL HOUR(2) TO MINUTE) from table1
COL1が5192または8734のような整数値が含まれています
INTERVAL HOUR TO MINUTE
の値の範囲は次のとおりです。当該共有サンプルデータについて
Type and Precision | Minimum Value | Maximum Value
-----------------------------------------------------------------
INTERVAL HOUR(1) TO MINUTE -'9:59' '9:59'
INTERVAL HOUR(2) TO MINUTE -'99:59' '99:59'
INTERVAL HOUR(3) TO MINUTE -'999:59' '999:59'
INTERVAL HOUR(4) TO MINUTE -'9999:59' '9999:59'
以下に示すように、出力値はINTERVAL HOUR(2) TO MINUTE
の範囲にあります。
SELECT CAST(CAST(5192 AS DECIMAL(18,0)) * INTERVAL '0000:01' MINUTE TO SECOND AS INTERVAL HOUR(2) TO MINUTE) AS Value1,
CAST(CAST(8734 AS DECIMAL(18,0)) * INTERVAL '0000:01' MINUTE TO SECOND AS INTERVAL HOUR(2) TO MINUTE) AS Value2;
結果:
Value1 | Value2
--------------
1:26 2:25
あなたの換算値のいくつかは、あなたが上から3番目のオプションを使用する必要があり、その場合には99:59
を超えているようです。特定のクエリとサンプルデータについては
任意の値が359999
よりも大きければ、それはエラー
「間隔フィールドがオーバーフロー」
でこれが役立つことを願っていますが失敗します - )
最大値は359999ですが、今は35999です。私はそれがあなたの最後の誤植だと思います。 –
はい。指摘してくれてありがとう。私に更新させてください:-) – zarruq
「col1」のサンプル値を親切に共有します。 – zarruq
両方の値がちょうど私の最後に変換されました。 '5192'と '8734'から '1:26'と '2:25'と 'BT'と 'ANSI'モードでそれぞれ 'sqla'と' bteq'を実行します。親切に 'col1'から' max'値を共有してください – zarruq