Postgres从包含float(IEEE 754)的bytea转换为real(float4)

时间:2013-04-22 13:42:59

标签: postgresql

以下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;

每当我尝试将结果从整数转换为实数时,我都会收到以下错误:

  

无法将类型位转换为实数。

有没有办法将值转换为float?

1 个答案:

答案 0 :(得分:0)

IEEE 754并不涵盖字节序,因此没有足够的信息将二进制转换为浮点数。如果要转换它,则必须创建一个函数或cast operator