我将十六进制值作为varchar导入,例如“0x400007”。我希望能够将0x40007转换为其他数据类型进行分析。
select convert(varbinary(max),0x400007)
返回0x400007字符串
select convert(varbinary(max),'0x400007')
返回0x30783430303037。如何让文本字符串返回0x40007?最终,我的目标是
select convert(int,0x400007)
并在其他函数中进一步操作int值,本例中为4194311。这是一个狗的年龄,因为我已经认为在十六进制,所以任何帮助将不胜感激。
谢谢!
1条答案
按热度按时间nom7f22z1#
0x400007
以及'0x400007'
实际上不是相同的值。当你简单地转换varchar
表示varbinary
值,它将转换为实际值varbinary
值,即0x3078343030303037
.30
是0
,78
是x
,34
是4
,30
是0
(注意你有多个)最后37
是7
.您需要使用样式代码,以便让SQLServer知道
varchar
表示varbinary
它会像你期望的那样转换它: