2

为什么此查询的输出不同

SELECT DATALENGTH(CAST('test' AS VARCHAR)), DATALENGTH(CAST('test' AS CHAR))

输出:

4,30

4

2 回答 2

5

VarChar 总是根据传递的字符串的长度进行调整。因此输出为 4。

CHAR 的默认长度为 30,因此输出为 30。

于 2010-10-05T09:49:50.350 回答
1

因为“当使用 CAST 和 CONVERT 函数时未指定 n 时,默认长度为 30 ”。但是当 DataLength 应用于 varchar 字段时,它会忽略尾随空格,而对于 char 字段,长度只是字段本身的大小。

于 2010-10-05T09:52:22.203 回答