select datalength('38498172-D975-4377-8212-3510D5A5BB74')
/*
-----------
--36
*/
select datalength(newid())
/*
-----------
16
*/
select datalength(getdate())
/*
-----------
8*/select datalength('2009-12-29 15:19:36.467')
/*-----------
23
*/
不明白,请大家指点
/*
-----------
--36
*/
select datalength(newid())
/*
-----------
16
*/
select datalength(getdate())
/*
-----------
8*/select datalength('2009-12-29 15:19:36.467')
/*-----------
23
*/
不明白,请大家指点
select datalength(newid())
/*
全局唯一标识符 (GUID)。存储大小为 16 字节。-----------
16
*/
select datalength(getdate())
/*
存储为两个 4 字节整数
前 4 个字节存储早于或晚于 base date 1900 年 1 月 1 日的天数。基准日期是系统的参照日期。不允许 datetime 的值早于 1753 年 1 月 1 日。后 4 个字节存储一天之中的具体时间,被表示为从午夜算起的毫秒数。秒数的有效范围是 0–59。-----------
8*/
/*-----------
14(1 行受影响)*/
第二个是一个16字节长的uniqueidentifier
第三个是一个8字节长的datetime
第四个是一个23字节长的字符串
SELECT @STR=NEWID(),@DATE='2009-12-29 15:19:36.467'
select datalength(@STR),DATALENGTH(CONVERT(uniqueidentifier ,@STR))
,DATALENGTH(@DATE),DATALENGTH(CONVERT(DATETIME,@DATE))
--36 16 23 8
它不会先执行 newid() 这个函数得到一个guid 的字符串,再计算字节数
而是得到了newid() 相对应的数据类型uniqueidentifier 所占的字节数
getdate() 同理是吧??
而是后面的参数没搞明白
1,4 是字串
2 是uniqueidentifier
3 是datetime结果当然不一样了~~~~~~~~
--突然想到,可以出一个不错的面试题
select datalength(1),len(1),datalength(1111111),len(1111111)