首页 > 代码库 > SQL Server 函数 LEN 与 DATALENGTH的区别
SQL Server 函数 LEN 与 DATALENGTH的区别
DATALENGTH()函数返回一个用于对值进行管理的字节数,这有助于揭示不同数据类型间的一些有趣差别。
当把varchar类型传递给DATALENGTH()和LEN()函数时,它们将返回相同的值:
DECLARE @Value varchar(20) SET @Value = http://www.mamicode.com/‘abc‘ >
这些语句的返回值都为3。
因为varchar类型使用了3个单字节字符来存储三个字符的值。然而,如果使用nVarchar类型来管理相同长度的值,就要占用多一倍的字节:
DECLARE @Value nvarchar(20) SET @Value = http://www.mamicode.com/‘abc‘ >
DATALENGTH()函数返回值为6,因为每个使用Unicode字符集的字符都要占用2个字节。
LEN()函数返回值为3,因为这个函数返回字符数,不是字节数。
以下是一个有趣的测试:要存储一个值为2的整型变量,要占用多少个字节?而如果要存储一个值为20亿的整型变量,又将占用多少个字节呢?试一下:
DECLARE @Value1 int, @Value2 int SET @Value1 = 2 SET @Value2 = 2000000000 SELECT DATALENGTH(@Value1) SELECT LEN(@Value1) SELECT DATALENGTH(@Value2) SELECT LEN(@Value2)
在这两种情况下,DATALENGTH()函数都返回4。
因为int类型不论值是多少,总是使用4个字节。
LEN()函数本质上将整型值当成已转换成字符型的数据来处理,所以,在这个例子中,它分别返回1和10,即值的位数。
原文:http://blog.csdn.net/Hello_World_wusu/article/details/4667452
SQL Server 函数 LEN 与 DATALENGTH的区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。