以下 SQL SELECT 查询返回一个整数:
SELECT (((get_byte(dalsk.data, 0)::bit(8)) ||
(get_byte(dalsk.data, 1)::bit(8)) ||
(get_byte(dalsk.data, 2)::bit(8)) ||
get_byte(dalsk.data, 3)::bit(8)) :: bit(32)) :: integer --AS rezult_float
FROM (SELECT substring(data from 2 for 5) AS data FROM raw_data WHERE
raw_data_id = 33)
AS dalsk;
每当我尝试将结果从整数转换为实数时,我都会收到以下错误:
Cannot cast type bit to real.
有没有办法将值转换为 float ?
最佳答案
IEEE754 不包括字节顺序,因此没有足够的信息将二进制转换为 float 。如果你想转换它,你必须创建一个函数或一个 cast operator .
关于postgresql - Postgres 从包含 float (IEEE 754) 的 bytea 转换为 real (float4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16148655/