| title | BASE64_ENCODE (Transact-SQL) | |||
|---|---|---|---|---|
| description | BASE64_ENCODE converts the value of a varbinary into a Base64 encoded varchar. | |||
| author | abledenthusiast | |||
| ms.author | aaronpitman | |||
| ms.reviewer | wiassaf, randolphwest | |||
| ms.date | 01/13/2026 | |||
| ms.service | sql | |||
| ms.subservice | t-sql | |||
| ms.topic | reference | |||
| ms.custom |
|
|||
| f1_keywords |
|
|||
| helpviewer_keywords |
|
|||
| dev_langs |
|
|||
| monikerRange | =azuresqldb-current || =fabric || =fabric-sqldb |
[!INCLUDE sqlserver2025-asdb-asmi-fabricse-fabricdw-fabricsqldb]
BASE64_ENCODE converts the value of a varbinary expression into a Base64-encoded varchar expression.
:::image type="icon" source="../../includes/media/topic-link-icon.svg" border="false"::: Transact-SQL syntax conventions
BASE64_ENCODE (expression [ , url_safe ] )
An expression of type varbinary(n) or varbinary(max).
Optional integer literal or expression, which specifies whether the output of the encode operation should be URL-safe. Any number other than 0 evaluates to true. The default value is 0.
- varchar(8000) if the input is varbinary(n) where
n<= 6000. - varchar(max) if the input is varbinary(n) where
n> 6000. - varchar(max) if the input is varbinary(max).
- If the input expression is
NULL, the output isNULL.
The encoded string uses the alphabet from RFC 4648 Table 1 and might include padding. The URL-safe output uses the Base64URL alphabet from RFC 4648 Table 2 and doesn't include padding. This function doesn't add any new line characters.
In each case, the database default collation is used. For more information on the supported collations in [!INCLUDE fabric], see Tables.
If you set url_safe to true, the generated Base64URL string isn't compatible with SQL Server's XML and JSON Base64 decoders.
The following example returns the Base64 encoded value for the © symbol.
SELECT BASE64_ENCODE(0xA9) AS "Encoded © symbol";[!INCLUDE ssResult_md]
qQ==
In the following example, a string is Base64 encoded. You must first cast the string to a varbinary.
SELECT BASE64_ENCODE(CAST ('hello world' AS VARBINARY));[!INCLUDE ssResult_md]
aGVsbG8gd29ybGQ=
In the following example, the first SELECT statement doesn't specify url_safe; however, the second SELECT statement does specify url_safe.
SELECT BASE64_ENCODE(0xCAFECAFE);[!INCLUDE ssResult_md]
yv7K/g==
The following example specifies that the output is URL-safe.
SELECT BASE64_ENCODE(0xCAFECAFE, 1);[!INCLUDE ssResult_md]
yv7K_g