我可以检索macaddr8列作为一个数字吗?

2024-06-01 02:04:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我用的是postgresql10。你知道吗

如果我理解正确,macaddr8列在内部存储为二进制数。你知道吗

当我用python/pandas/sqlachemy脚本检索数据时,我得到的数据是一个字符串,带有以列分隔的十六进制字节'01:23:45:67:89:ab:cd:ef'。你知道吗

是否可以将其检索为数字?你知道吗


Tags: 数据字符串脚本pandas字节ab二进制cd
1条回答
网友
1楼 · 发布于 2024-06-01 02:04:04

显然,没有内置的功能,但您可以使用:

concat('x', replace(mac::text, ':', ''))::bit(64)::bigint

示例:

WITH values (mac) AS (VALUES ('01:23:45:67:89:ab:cd:ef'::macaddr8))
SELECT
    mac,
    concat('x', replace(mac::text, ':', ''))::bit(64)::bigint AS num
FROM values;

…结果为:

           mac           |        num        
            -+         -
 01:23:45:67:89:ab:cd:ef | 81985529216486895
(1 row)

相关问题 更多 >