我正在使用 Python 的 struct.pack
函数将各种数据类型打包到 PostgreSQL 中的一个通用 32 位整数字段中。缺点是我无法在数据库中使用这些值,我必须在 Python 中对数据执行 struct.unpack
才能知道它代表什么。
如果我将一个 32 位 float 打包到这个字段中,有没有办法让 PostgreSQL 为我进行转换?
我试过了,但没用:
select cast(cast(value as bit(32)) as float4) ...
它将成功地将整数转换为位 (32),但不会将其转换回 float 。
最佳答案
您可能不需要的答案是:不要那样做。
这违反了基本原则:数据库中的值应该是原子的,不能分割成其他值。数据库的所有操作(我是否提到过所有)都调整为处理单个值。您在这里“与框架作斗争”。
即使你能成功,也会拖累性能。此外,数据库不可报告,不仅仅是您现在遇到这个问题,无论出于何种原因,每次尝试读取此数据都会遇到此问题。
嗯,我不想大声疾呼,'nuf 说。
关于python - 如何在 PostgreSQL 中将整数解压缩为 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4891634/