PostgreSQL bytea到SQL Server的Base64

时间:2019-01-15 20:27:53

标签: sql-server postgresql binary base64 bytea

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

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

,结果为“ DLxmEfVUC9CAmjiNyVphWw ==”。

在PostgreSQL中,我有

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

结果为“ MGNiYzY2MTFmNTU0MGJkMDgwOWEzODhkYzk1YTYxNWI =”。

如何获得类似SQL Server的结果?

1 个答案:

答案 0 :(得分:1)

Postgres的md5()返回一个text,其中包含哈希的十六进制表示形式。通过简单地将其强制转换为bytea,您将获得该字符串的bytea,而不是它表示的值。您可以使用decode()来获取字符串以十六进制表示的bytea值。

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