views:

13

answers:

2

Why the output is different of this query

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

outPut:

4,30

+2  A: 

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.

Sachin Shanbhag
+1  A: 

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.

CodeByMoonlight

related questions