如何在sybase中连接varchar(32)和二进制(16)列?

时间:2011-11-11 19:09:56

标签: sql sybase

我想在UUID上加入两个表。表A的UUID表示为varchar(32)。表B的UUID表示为二进制(16)。

将varchar加入二进制列的最佳方法是什么?

我已经尝试过使用一些sybase函数,但是我得到了不同的结果并且不确定原因:

select hextobigint('0x000036ca4c4c11d88b8dcd1344cdb512')
3948051912944290701
select convert(bigint,0x000036ca4c4c11d88b8dcd1344cdb512)
-2877434794219274240

我对转换和hextobigint缺少什么?我必须至少误解其中一项功能。谢谢你的帮助!

2 个答案:

答案 0 :(得分:1)

最终在一些同事的帮助下得到了它:

select strtobin(convert(char(32), '000036ca4c4c11d88b8dcd1344cdb512'))

答案 1 :(得分:0)

问题出在select convert(bigint,0x000036ca4c4c11d88b8dcd1344cdb512)

如果删除第一个零,它会给你相同的结果:

select hextobigint('0x000036ca4c4c11d88b8dcd1344cdb512')

select convert(bigint,0x36ca4c4c11d88b8dcd1344cdb512)