Varchar и Char ведут себя отличаться от активов
-
27-09-2019 - |
Вопрос
Почему вывод отличается от этого запроса
SELECT DATALENGTH(CAST('test' AS VARCHAR)), DATALENGTH(CAST('test' AS CHAR))
выход:
4,30
Решение
Varchar всегда настраивается на длину пропущенной строки. Следовательно, выход 4.
CHAR имеет длину по умолчанию 30 и, следовательно, вывод составляет 30.
Другие советы
Потому что «Когда n не указан при использовании функций zt и конвертации, длина по умолчанию составляет 30«. Но когда DataLenge наносится на поле VARCHAR, он игнорирует конечные пробелы, а для картного поля длина - это просто размер самой поля.
Не связан с StackOverflow