drill sql中的numberformatexception,当它实际上是一个数字时强制转换为bigint

fnvucqvd  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(423)

在下面的sql中,在尝试转换varchar中的数字时钻取cribs

select cast (case IsNumeric(Delta_Radio_Delay)  
when 0 then 0 else Delta_Radio_Delay end as BIGINT) 
from datasource.`./sometable` 
where Delta_Radio_Delay='4294967294';

bigint应该能够接受非常大的数字。我不明白它是如何抛出以下错误的:
错误:系统错误:numberformatexception:4294967294
片段1:29[集群3:31010上的错误id:a63bb113-271f-4d8b-8194-2c9728543200](状态=,代码=0)
如何修改sql来解决这个问题?

qgelzfjb

qgelzfjb1#

在apache中,bigint只有8个字节。所以只能使用-2147483648和2147483647之间的数字。
ie:最大数目为'2147483647'。这就是它抛出错误的原因。
希望对你有帮助。

相关问题