将二进制返回为字符串,不转换或转换

时间:2013-05-02 14:21:35

标签: sql sql-server-2008 types

是否有一种简单的方法(如转换或强制转换)将二进制字段作为字符串返回而不实际转换或转换它?

我想要的数据在数据库中看起来像这样:

0x24FC40460F58D64394A06684E9749F30

当使用convert(varchar(max),binary_field)时,它会像这样返回:

$ü@FXÖC” f„étŸ0

cast(binary_field as varchar(max))具有相同的结果。

我正在尝试修改旧的vb.net应用程序中的数据源,所以我希望它是一个类似于现有值的字符串,但仍然看起来像原始数据。我没有在查询中执行此操作,但我想尽可能避免过多地修改旧的vb代码。

这是我的选择声明:

SELECT strName, strDesc, binUUID
  FROM MyTableName
  where intFamily = '1234'
  order by strName

或者,如果我进行转换/转换,将以后存储为字符串的“$ü@FXÖC”f“étŸ0”与以相同方式收集的其他值进行比较是否安全?

1 个答案:

答案 0 :(得分:2)

有一个内置函数可以从二进制值

生成十六进制字符串
SELECT sys.fn_varbintohexstr (0x24FC40460F58D64394A06684E9749F30)