Why the output is different of this query
SELECT DATALENGTH(CAST('test' AS VARCHAR)), DATALENGTH(CAST('test' AS CHAR))
outPut:
4,30
Why the output is different of this query
SELECT DATALENGTH(CAST('test' AS VARCHAR)), DATALENGTH(CAST('test' AS CHAR))
outPut:
4,30
VarChar always adjusts to the length of the string passed. hence the output is 4.
CHAR has default length of 30 and hence the output is 30.
Because "When n is not specified when using the CAST and CONVERT functions, the default length is 30". But when DataLength is applied to a varchar field, it ignores trailing spaces, while for a char field the length is just the size of the field itself.