如何在 mariadb 中将整数转换为二进制
How to cast integer to binary in mariadb
我在使用 mariadb 中的转换函数时遇到问题。使用相同的查询但结果 sql 服务器和 mariadb 不同。
在 sql 服务器中:
Query: select CAST(1234 as binary(10))
Result: 0x000000000000000004D2
在 mariadb 中:
Query: select CAST(1234 as binary(10))
Result: 1234
我不明白。请帮我解释并提出解决方案。
binary
是字符类型,但是有hex
函数可以得到一个表达式的十六进制值
select hex(1234);
+-----------+
| hex(1234) |
+-----------+
| 4D2 |
+-----------+
如果您想要相同的格式,可以使用其他函数来完成:
select concat('0x', lpad(hex(1234),20,'0')) ;
+--------------------------------------+
| concat('0x', lpad(hex(1234),16,'0')) |
+--------------------------------------+
| 0x000000000000000004D2 |
+--------------------------------------+
我在使用 mariadb 中的转换函数时遇到问题。使用相同的查询但结果 sql 服务器和 mariadb 不同。
在 sql 服务器中:
Query: select CAST(1234 as binary(10))
Result: 0x000000000000000004D2
在 mariadb 中:
Query: select CAST(1234 as binary(10))
Result: 1234
我不明白。请帮我解释并提出解决方案。
binary
是字符类型,但是有hex
函数可以得到一个表达式的十六进制值
select hex(1234);
+-----------+
| hex(1234) |
+-----------+
| 4D2 |
+-----------+
如果您想要相同的格式,可以使用其他函数来完成:
select concat('0x', lpad(hex(1234),20,'0')) ;
+--------------------------------------+
| concat('0x', lpad(hex(1234),16,'0')) |
+--------------------------------------+
| 0x000000000000000004D2 |
+--------------------------------------+