【发布时间】:2017-07-25 14:49:32
【问题描述】:
我有一个将INT 参数保存到NVARCHAR 列中的存储过程。
如果我这样做
DECLARE @VALORE AS INT
SET @VALORE = 90
INSERT INTO TABLE (VALORE) VALUES(@VALORE)
所以如果我从数据库中选择价值,我可以看到这个
90.0000
【问题讨论】:
-
您可以将其转换为
NVARCHAR,但我不明白的是:您为什么要首先将INT存储在NVARCHAR列中? -
为什么你会得到
90.000一个整数?整数没有小数部分。.是千位分隔符还是小数点,您是否暗示要将格式化数字作为字符串存储在数据库中?如果是这样,请跳过它 - 在表示层进行格式化,将数据以正确的类型保存在数据库中。 -
总是使用最合适的数据类型——如果你的值是
INT——为什么在EARTH你想把它存储为@ 987654332@??如果它看起来像一个 int,说话像一个 int,闻起来像一个 int - 它 IS 一个INT并且应该这样存储 -
您确定 VALORE 不是数字或小数吗?只有这样我才能理解为什么你会得到 90.0000 的回报......
-
这甚至不是一个问题。当您从数据库中选择时,您是说您想要或不想获得“90.0000”?您在查询时获得的结果与数据库中存储的内容有什么关系? blog.codinghorror.com/rubber-duck-problem-solving
标签: sql-server tsql insert