PostgreSQL bytea для Base64, как SQL Server

В SQL Server я преобразую двоичный файл в Base64, как это

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

и иметь результат "DLxmEfVUC9CAmjiNyVphWw==".

В PostgreSQL у меня есть

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

и результат будет "MGNiYzY2MTFmNTU0MGJkMDgwOWEzODhkYzk1YTYxNWI=".

Как я могу получить результат, как SQL Server?

1 ответ

Решение

Postgres' md5() возвращает text содержащий шестнадцатеричное представление хеша. Просто приведя его к bytea Вы получаете bytea для этой строки, а не для значения, которое она представляет. Ты можешь использовать decode() чтобы получить bytea Значение строка представляет в шестнадцатеричной записи.

SELECT encode(decode(md5('Test'), 'hex'), 'base64');
Другие вопросы по тегам