PostgresSQL bytea 到 Base64 就像 SQL 服务器

PostgreSQL bytea to Base64 like SQL Server

在SQL服务器中,我像这样将二进制文件转换为Base64

SELECT HASHBYTES('MD5', 'Test') FOR XML PATH(''), TYPE

并得到结果 "DLxmEfVUC9CAmjiNyVphWw==".

在 Postgre 中SQL 我有

SELECT encode(md5('Test')::bytea, 'base64')

结果是 "MGNiYzY2MTFmNTU0MGJkMDgwOWEzODhkYzk1YTYxNWI=".

我怎样才能得到像 SQL 服务器这样的结果?

Postgres' md5() returns 一个 text 包含哈希的十六进制表示。通过简单地将它转换为 bytea ,您会得到该字符串的 bytea,而不是它所代表的值。您可以使用 decode() 获取字符串以十六进制表示的 bytea 值。

SELECT encode(decode(md5('Test'), 'hex'), 'base64');