【发布时间】:2012-01-06 05:59:03
【问题描述】:
在我的表中,有一个名为zipcode 的列,其数据类型为int。当我存储一个以 0 开头的邮政编码时(例如08872),它被存储为8872。
谁能解释一下为什么会这样?
【问题讨论】:
在我的表中,有一个名为zipcode 的列,其数据类型为int。当我存储一个以 0 开头的邮政编码时(例如08872),它被存储为8872。
谁能解释一下为什么会这样?
【问题讨论】:
INT 值是数字 - 在数字上,08872 和 8872 相同 - 都表示值 8872。
SQL Server 将不为数值存储前导零。就是这样。
要么将其存储为CHAR(5),要么在需要显示时在前端处理格式(在邮政编码中添加前导零)。
【讨论】:
CHAR(5) - 绝对不是 VARCHAR(MAX) !!