The function takes binary data as input, but you can convert any data type to binary first, and then pass it to this function.
sql Code:
  1. -- =============================================
  2. -- Author:      <Michael Ciurescu>
  3. -- Create date: <20090122>
  4. -- Description: <Convert Binary to Binary String>
  5. -- =============================================
  6. CREATE FUNCTION dbo.f_BinToBinStr
  7. (
  8.     @Data VARBINARY(MAX)
  9. )
  10. RETURNS VARCHAR(MAX)
  11. AS
  12. BEGIN
  13.     DECLARE @HexStr VARCHAR(MAX)
  14.    
  15.     /*
  16.         -- Examples:
  17.         SELECT dbo.f_BinToBinStr(RAND())
  18.         SELECT dbo.f_BinToBinStr(NewID())
  19.         SELECT dbo.f_BinToBinStr(CONVERT(VARBINARY(MAX), 'dfgdf34534dssds488dfk8'))
  20.         SELECT dbo.f_BinToBinStr(CONVERT(VARBINARY(MAX), 123456789))
  21.     */
  22.    
  23.     SET @HexStr = CONVERT(VARCHAR(MAX), master.dbo.fn_varbintohexstr(@Data))
  24.     SET @HexStr = SUBSTRING(@HexStr, 3, LEN(@HexStr))
  25.    
  26.     SET @HexStr = REPLACE(@HexStr, '0', '0000')
  27.     SET @HexStr = REPLACE(@HexStr, '1', '0001')
  28.     SET @HexStr = REPLACE(@HexStr, '2', '0010')
  29.     SET @HexStr = REPLACE(@HexStr, '3', '0011')
  30.     SET @HexStr = REPLACE(@HexStr, '4', '0100')
  31.     SET @HexStr = REPLACE(@HexStr, '5', '0101')
  32.     SET @HexStr = REPLACE(@HexStr, '6', '0110')
  33.     SET @HexStr = REPLACE(@HexStr, '7', '0111')
  34.     SET @HexStr = REPLACE(@HexStr, '8', '1000')
  35.     SET @HexStr = REPLACE(@HexStr, '9', '1001')
  36.     SET @HexStr = REPLACE(@HexStr, 'A', '1010')
  37.     SET @HexStr = REPLACE(@HexStr, 'B', '1011')
  38.     SET @HexStr = REPLACE(@HexStr, 'C', '1100')
  39.     SET @HexStr = REPLACE(@HexStr, 'D', '1101')
  40.     SET @HexStr = REPLACE(@HexStr, 'E', '1110')
  41.     SET @HexStr = REPLACE(@HexStr, 'F', '1111')
  42.    
  43.     RETURN @HexStr
  44. END