Sql server 如何在mariadb中将整数转换为二进制

Sql server 如何在mariadb中将整数转换为二进制,sql-server,mariadb,Sql Server,Mariadb,我对mariadb中的cast函数有问题。使用相同的查询,但sql server和mariadb中的结果不同 在sql server中: Query: select CAST(1234 as binary(10)) Result: 0x000000000000000004D2 在马里亚行: Query: select CAST(1234 as binary(10)) Result: 1234 我不明白。请帮助我解释并建议解决方案。binary是一种字符类型,但有hex函数可以获取表达式的十六

我对mariadb中的cast函数有问题。使用相同的查询,但sql server和mariadb中的结果不同

在sql server中:

Query: select CAST(1234 as binary(10))
Result: 0x000000000000000004D2
在马里亚行:

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               |
+--------------------------------------+

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中二进制的实际含义(它是mariadb中的字符串数据类型),并根据需要使用类似hex()的内容。谢谢@ZLK。你的建议解决了这个问题。在这种情况下,hex()可能会有所帮助。我建议用谷歌搜索mariadb中二进制的实际含义(它是mariadb中的字符串数据类型),并根据需要使用类似hex()的内容。谢谢@ZLK。你的建议解决了这个问题。在这种情况下,hex()可以提供帮助