在SQL Server中,我像这样将二进制文件转换为Base64
SELECT HASHBYTES('MD5', 'Test') FOR XML PATH(''), TYPE
,结果为“ DLxmEfVUC9CAmjiNyVphWw ==”。
在PostgreSQL中,我有
SELECT encode(md5('Test')::bytea, 'base64')
结果为“ MGNiYzY2MTFmNTU0MGJkMDgwOWEzODhkYzk1YTYxNWI =”。
如何获得类似SQL Server的结果?
答案 0 :(得分:1)
Postgres的md5()
返回一个text
,其中包含哈希的十六进制表示形式。通过简单地将其强制转换为bytea
,您将获得该字符串的bytea
,而不是它表示的值。您可以使用decode()
来获取字符串以十六进制表示的bytea
值。
SELECT encode(decode(md5('Test'), 'hex'), 'base64');