有没有办法在 SQL 中获取一个位字段(非交易)

Is there a way to get a Bit field in SQL (non transact)

假设该字段带有 134479872 之类的数字,我希望它恢复为 0xffffffff 并提取每一对,例如 Oxff000000x00ff0000 , 0x0000ff000x000000ff 在单独的字段中。这些位应该告诉我关于左、右、上和下边缘的信息:前两位用于左边缘,接下来的两位用于右边缘,依此类推。

现在我尝试 SELECT CAST(myfield as Binary(8)) 获取 0xffffffff 格式,但它不接受它。从那里我可以使用 Mid() 来获得我需要的两个字段,最后一部分我没问题。

请注意,我的 SQL 是处理 Access 2010 的,它不接受 Transact-SQL 函数。

提前致谢

您可以使用 Hex$() 函数。

? Hex$(134479872)
8040000

要填充到 8 个字符:

? Right("00000000" & Hex$(134479872), 8)
08040000

但是,如果您使用完整的 32 位,您将 运行 遇到问题 - VBA Longints 已签名。

? &H7FFFFFFF
 2147483647 

? Hex$(2147483648)
<Overflow error>