我在redshift数据库中有表。该表有列" PERCENTILE"定义为 输入:float8 大小:17
我发现运行一个选择它或者作为varchar时我得到的值不同。
select PERCENTILE , cast(PERCENTILE AS varchar) from ...
结果是:
0.156870898195838 | 0.15687089819583799
我不知道如何解释这一点。铸造可能会改变价值吗?有人可以帮忙吗?
答案 0 :(得分:0)
当值通过类型转换显示不同时,通常表明您的SQL客户端正在应用某种格式或以某种方式解释结果。
例如,某些SQL客户端在用户的本地时区中显示TIMESTAMP WITH TIMEZONE
值(在其计算机上设置)。在这种情况下,即使从Redshift发送类似信息,执行SELECT date, date::text
实际上会在客户端中返回不同的值。
在您的情况下,似乎正在进行一些舍入:
0.156870898195838
0.15687089819583799
从Amazon Redshift发送的完整值可能是第二个值,但客户端可能会显示float8
四舍五入到更少的小数位。