从DB中选择时,值会更改

时间:2017-05-03 07:28:15

标签: database amazon-redshift

我在redshift数据库中有表。该表有列" PERCENTILE"定义为 输入:float8 大小:17

我发现运行一个选择它或者作为varchar时我得到的值不同。

select PERCENTILE , cast(PERCENTILE AS varchar) from ...

结果是:
0.156870898195838 | 0.15687089819583799

我不知道如何解释这一点。铸造可能会改变价值吗?有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

当值通过类型转换显示不同时,通常表明您的SQL客户端正在应用某种格式或以某种方式解释结果。

例如,某些SQL客户端在用户的本地时区中显示TIMESTAMP WITH TIMEZONE值(在其计算机上设置)。在这种情况下,即使从Redshift发送类似信息,执行SELECT date, date::text实际上会在客户端中返回不同的值

在您的情况下,似乎正在进行一些舍入:

0.156870898195838
0.15687089819583799

从Amazon Redshift发送的完整值可能是第二个值,但客户端可能会显示float8四舍五入到更少的小数位。