用SQL Server的CAST()函数获得GB2312和UTF8两种编码

CAST()函数的参数类型变化,为中文返回两种不同的编码:

SELECT CAST(‘汉字‘ AS VARBINARY) AS [GB2312];

--相当于 CAST(CAST(N‘汉字‘ AS   VARCHAR(4)) AS VARBINARY)

SELECT CAST(N‘汉字‘ AS VARBINARY) AS [UTF-8];

--相当于 CAST(CAST(N‘汉字‘ AS NVARCHAR(2)) AS VARBINARY)

返回结果(二进制类型):

GB2312
0xBABAD7D6

UTF-8
0x496C575B

通过master.sys.fn_varbintohexsubstring()函数能得到相应的十六进制编码。如:

SELECT master.sys.fn_varbintohexsubstring(0, 0xBABAD7D6 ,1,0) AS [GB2312] --返回字符串:BABAD7D6

SELECT master.sys.fn_varbintohexsubstring(0, 0x496C575B,  1,0) AS [UTF-8]    --返回字符串:496C575B

备注:

master.sys.fn_varbintohexstr()函数和 master.sys.fn_varbintohexsubstring() 只能转换不大于2,147,483,647( int 类型)的二进制数,参见:http://www.cnblogs.com/gaizai/p/4001016.html

时间: 2024-08-01 08:18:45

用SQL Server的CAST()函数获得GB2312和UTF8两种编码的相关文章

SQL Server 2008数据库创建用户只读权限的两种方式

在SQL Server 2008中,为了保护数据库的安全,需要给不同的使用者开通不同的访问用户,那么如何简单的控制用户的权限呢?下面我们就创建一个只读用户,给大家学习使用. 一.命令行方式创建 新建查询窗口,然后输入以下命令然后执行即可 sqlserver命令方式增加登录名.用户名及赋予相应权限 sp_addlogin 'test','test','DB'  >>登录名.密码.登录的数据库 sp_grantdbaccess 'test'  >>将数据库用户加入到当前数据库 gran

SQL Server 中SELECT INTO 和 INSERT INTO SELECT 两种表复制语句

1.INSERT INTO SELECT语句 语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1 要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量. 2.SELECT INTO FROM语句 语句形式为:SELECT vale1, value2 into Table2 from Table1 要求目标表Table2不

SQL Server UDF用户自定义函数

UDF的定义 和存储过程很相似,用户自定义函数也是一组有序的T-SQL语句,UDF被预先优化和编译并且尅作为一个单元爱进行调用.UDF和存储过程的主要区别在于返回结果的方式. 使用UDF时可传入参数,但不可传出参数.输出参数的概念被更为健壮的返回值取代了.和系统函数一样,可以返回标量值,这个值的好处是它并不像在存储过程中那样只限于整形数据类型,而是可以返回大多数SQL Server数据类型. UDF有以下两种类型: 返回标量值的UDF. 返回表的UDF. 创建语法: CREATE FUNCTIO

SQL Server 中CAST和Convert的区别

在 SQL Server 中Cast和Convert都是将表达式由一种数据类型转换为另一种数据类型.由于SQL Server提供两种功能,因此应该选择哪种功能或应该在哪种情况下使用该功能就很容易让人困惑了.CONVERT是专对SQL Server使用的,使日期与时间值,小数之间转换具有更宽的灵活性.CAST是两种功能中更具ANSI标准的功能,即虽然更具便携性(比如,使用CAST的函数能更容易的被其它数据库软件使用),但功能相对弱一些.不过,当小数转化为数值,并保留原始表达式中的小数数值时,仍然需

SQL Server 基础 04 函数与分组查询数据

函数与分组查询数据 系统函数分 聚合函数.数据类型转换函数.日期函数.数学函数 . . . 1. 聚合函数 主要是对一组值进行计算,然后返回一个值. 聚合函数包括 sum(求和).avg(求平均值).min().max().count(求数量) sum函数语法  :  sum(列明) select sum(sno) as 序号和 from stu_info avg select avg(sno) as 序号平均值 from stu_info . . . count 用来一组值的个数,统计 sel

SQL Server 2005 MD5函数

原文:SQL Server 2005 MD5函数 在SQL Server 2005下自带的函数HashBytes() ,此函数是微软在SQL Server 2005中提供的,可以用来计算一个字符串的MD5和SHA1值,使用方法如下: --获取123456的MD5加密串 select hashbytes('MD5', '123456') ; --获取123456的SHA1加密串 select hashbytes('SHA1', '123456') ; 有了这个函数可以在SQL Server中为字符

[转]SQL Server字符串处理函数大全

select语句中只能使用sql函数对字段进行操作(链接sql server), select 字段1 from 表1 where 字段1.IndexOf("云")=1;这条语句不对的原因是indexof()函数不是sql函数,改成sql对应的函数就可以了.left()是sql函数.select 字段1 from 表1 where charindex('云',字段1)=1; 字符串函数对二进制数据.字符串和表达式执行不同的运算.此类函数作用于CHAR.VARCHAR. BINARY.

查看SQL SERVER 加密存储过程,函数,触发器,视图

原文:查看SQL SERVER 加密存储过程,函数,触发器,视图 create  PROCEDURE sp_decrypt(@objectname varchar(50))ASbeginset nocount on--CSDN:j9988 copyright:2004.07.15 --V3.2 --破解字节不受限制,适用于SQLSERVER2000存储过程,函数,视图,触发器--修正上一版"视图触发器"不能正确解密错误--发现有错,请E_MAIL:[email protected]be

奇怪的 sql server 2008 Power 函数

bigint 的 数据范围是  从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据 但是 , 如果这么写 print CAST(POWER(3, 20) AS BIGINT) 会报这个错误 Msg 232, Level 16, State 3, Line 1 Arithmetic overflow error for type int, value = 3486784401.000000. 尽管 34867844