Sql 二进制类型到实际二进制

Sql 二进制类型到实际二进制,sql,sql-server,type-conversion,Sql,Sql Server,Type Conversion,所以,我知道这一定是个愚蠢的问题,但我似乎找不到好的答案。当我在SQLServer的二进制列中存储二进制值时,它将以十六进制格式显示。因此,下面,二进制数在右边,十六进制表示形式在表中以“二进制”格式存储在左边 Hex Binary 0x0000 0 0x0001 1 0x000A 10 0x000B 11 0x0064 100 0x0065 101 0x006E 110 0x006F 111 0x03E8 1000 0x03E9 1001 0x03F2 1010

所以,我知道这一定是个愚蠢的问题,但我似乎找不到好的答案。当我在SQLServer的二进制列中存储二进制值时,它将以十六进制格式显示。因此,下面,二进制数在右边,十六进制表示形式在表中以“二进制”格式存储在左边

Hex     Binary
0x0000  0
0x0001  1
0x000A  10
0x000B  11
0x0064  100
0x0065  101
0x006E  110
0x006F  111
0x03E8  1000
0x03E9  1001
0x03F2  1010
0x03F3  1011
0x044C  1100
这是一个愚蠢的问题,我怎样才能把它恢复到原来的二进制格式呢?似乎最好将其存储为另一种类型

它实际上是以十六进制格式存储的

这是错误的。MSSQL将二进制数据存储为二进制数据。十六进制格式是二进制值的表示形式。 要转换为任何基于N的二进制表示形式,也可以编写SP或从以下位置获取:


非常感谢。我更新了我的问题,以反映它作为二进制文件存储在服务器上。我希望它会简单一点,但谢谢你的功能。
CREATE FUNCTION ConvertToBase  
(  
    @value AS BIGINT,  
    @base AS INT  
) RETURNS VARCHAR(MAX) AS BEGIN  

    -- some variables  
    DECLARE @characters CHAR(36),  
            @result VARCHAR(MAX);  

    -- the encoding string and the default result  
    SELECT @characters = '0123456789abcdefghijklmnopqrstuvwxyz',  
           @result = '';  

    -- make sure it's something we can encode.  you can't have  
    -- base 1, but if we extended the length of our @character  
    -- string, we could have greater than base 36  
    IF @value < 0 OR @base < 2 OR @base > 36 RETURN NULL;  

    -- until the value is completely converted, get the modulus  
    -- of the value and prepend it to the result string.  then  
    -- devide the value by the base and truncate the remainder  
    WHILE @value > 0  
        SELECT @result = SUBSTRING(@characters, @value % @base + 1, 1) + @result,  
               @value = @value / @base;  

    -- return our results  
    RETURN @result;