【Teradata SQL】十进制转换成二进制

1.数值类型转换为二进制(TO_BYTE+FROM_BYTES)

sel FROM_BYTES(TO_BYTE(1024),'base2');

 2.字符串类型转换为二进制(TO_BYTES+FROM_BYTES)

sel cast(23 as varchar(20) character set unicode) vl,from_bytes(to_bytes(vl,'BASE10'),'BASE2')

3.查看结果数据类型(type)

sel type(FROM_BYTES(TO_BYTE(1024),'base16')); 

4.TO_BYTE

参数:数字类型值,BYTEINT、SMALLINTINTEGERBIGINT
输出:十六进制BYTE类型值,长度由输入类型决定BYTEINT->BYTE(1)、SMALLINT->BYTE(2)、INTEGER->BYTE(4)、BIGINT->BYTE(8)、NULL->NULL
SELECT TO_BYTE(23); //返回BYTE(1)类型,十六进制值17。可以使用sel type(to_byte(23));查看返回值类型

5.TO_BYTES

参数1:instring 要解码的字符串值(VARCHAR or CLOB类型)
参数2:in_encoding 输入的编码格式,ASCII、Base2、Base10、Base16、Base64M 
输出 :VARBYTE or BLOB
SELECT CAST (TO_BYTES ('5A', 'base16') as BYTE (16)); //返回'5A-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 '
SELECT TO_BYTES('5A','base16'); //返回'5A'

6.FROM_BYTES

参数1:instring 要编码的二进制字符值(VARBYTE or BLOB)
参数2:out_encoding 输出的编码格式,ASCII、Base2、Base10、Base16、Base64M
输出 :VARCHAR or CLOB(可能为NULL)
SELECT from_bytes('5A1B'XB, 'base16');  //返回'5A1B'
SELECT from_bytes('5A3F'XB, 'ASCII');  //返回'ZESC '
SELECT from_bytes('5A1B'XB, 'base10'); //返回'23067'

 说明:Base64一种基于64个可打印字符来表示二进制数据的方法,用于传输8Bit字节码的编码方式之一。

原文地址:https://www.cnblogs.com/badboy200800/p/10553695.html