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

标签 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;

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

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/

相关文章:

mysql - NVME SSD 会加速繁重的查询吗?选择大偏移量/表扫描等?

java - 如何在 Jakarta-EE 项目中使用 @Resource 注入(inject) Tomcat 数据源?

ruby-on-rails - 重新创建我的 database.yml 文件

postgresql - search_path 如何影响标识符解析和 "current schema"

postgresql - 如何在 PostgreSQL 9 中的日期列中插入 varchar '//' 作为空值

linux - psql 错误 : could not open file "address.csv" for reading: No such file or directory

java - 如何实现类似阻塞队列的SQL机制

postgresql - 如何在 Postgresql 时间戳中存储 Golang time.time?

sql - 如何在 Postgres 中启用对一个模式和公共(public)模式的访问

sql - 使用单个变量查询 "id"或 "slug"