为什么此查询的输出不同
SELECT DATALENGTH(CAST('test' AS VARCHAR)), DATALENGTH(CAST('test' AS CHAR))
输出:
4,30
为什么此查询的输出不同
SELECT DATALENGTH(CAST('test' AS VARCHAR)), DATALENGTH(CAST('test' AS CHAR))
输出:
4,30
VarChar 总是根据传递的字符串的长度进行调整。因此输出为 4。
CHAR 的默认长度为 30,因此输出为 30。
因为“当使用 CAST 和 CONVERT 函数时未指定 n 时,默认长度为 30 ”。但是当 DataLength 应用于 varchar 字段时,它会忽略尾随空格,而对于 char 字段,长度只是字段本身的大小。