Teradata:将时间间隔 HOUR(2) 转换为分钟时出错
Teradata : Error while converting Interval HOUR(2) TO MINUTE
我有一个 Teradata table,其中一列中的值为整数,我必须将其转换为 HOUR(2) TO MINUTE。
我已经尝试了下面的语句,但出现了类似 Interval field overflow
的错误
CAST(CAST(col1 AS DECIMAL(18,0)) * INTERVAL '0000:01' MINUTE TO SECOND AS INTERVAL HOUR(2) TO MINUTE) from table1
col1 包含整数值,如 5192 或 8734 等
根据 teradata documentation:
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
您的某些转换值似乎超过了 99:59
,在这种情况下,您必须使用上面的第三个选项。
对于给定的查询和示例数据,如果任何值大于 359999
,它将失败并出现错误
" Interval field Overflow "
希望这会有所帮助:-)
我有一个 Teradata table,其中一列中的值为整数,我必须将其转换为 HOUR(2) TO MINUTE。
我已经尝试了下面的语句,但出现了类似 Interval field overflow
的错误CAST(CAST(col1 AS DECIMAL(18,0)) * INTERVAL '0000:01' MINUTE TO SECOND AS INTERVAL HOUR(2) TO MINUTE) from table1
col1 包含整数值,如 5192 或 8734 等
根据 teradata documentation:
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
您的某些转换值似乎超过了 99:59
,在这种情况下,您必须使用上面的第三个选项。
对于给定的查询和示例数据,如果任何值大于 359999
,它将失败并出现错误
" Interval field Overflow "
希望这会有所帮助:-)