【发布时间】:2010-09-26 10:23:39
【问题描述】:
在 SQL Server 2005 中此查询
select len(cast('the quick brown fox jumped over the lazy dog' as varchar))
返回 30 作为长度,而提供的字符串有更多字符。这似乎是默认值。为什么是 30,而不是 32 或 2 的任何其他幂?
[编辑] 我知道在转换为 varchar 时我应该始终指定长度,但这是一个快速的让我们检查一些东西的查询。问题仍然存在,为什么是 30 个?
【问题讨论】:
-
天哪——我不知道 CAST 会这样截断。我一直认为返回的 varchar 的大小会适合 CAST 填充的内容。我有一些代码要检查...bbl
-
您更愿意使用 255,如 Informix、Sybase 和其他 DB 的默认值吗? (见下面我的回答)
标签: sql sql-server casting