【问题标题】:How can I save INT in NVARCHAR column database如何在 NVARCHAR 列数据库中保存 INT
【发布时间】: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


【解决方案1】:
INSERT INTO TABLE (VALORE) VALUES(CAST(@VALORE AS VARCHAR(10))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-09
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多