我在mariadb中遇到了强制转换功能。使用相同的查询但结果是sql server和mariadb不同。
在sql server中:
Query: select CAST(1234 as binary(10))
Result: 0x000000000000000004D2
在mariadb:
Query: select CAST(1234 as binary(10))
Result: 1234
我不明白。请帮我解释并提出解决方案。
答案 0 :(得分:0)
binary
是一个字符类型,但是有hex
函数来获取表达式的十六进制值。
select hex(1234);
+-----------+
| hex(1234) |
+-----------+
| 4D2 |
+-----------+
如果您想要相同的格式,可以使用其他功能完成:
select concat('0x', lpad(hex(1234),20,'0')) ;
+--------------------------------------+
| concat('0x', lpad(hex(1234),16,'0')) |
+--------------------------------------+
| 0x000000000000000004D2 |
+--------------------------------------+