0

我试图在 SQL Server 中的类型为的列中插入一个值numeric(18, 0)

我无法在开头插入零。例如添加022223被插入为22223...

我认为将列类型更改为varchar可行,但我不想更改表结构。

在不更改表结构的情况下执行此操作的任何方法..请帮助

4

3 回答 3

1

您可以在读取和插入这样的值时应用转换:

插入值时:

string s = "00056";
 double val = double.Parse("0." + s);

并在查询值使用时:

double value = 0.00056; // stored value in your db field
 s = val.ToString().Remove(0,2);

我认为它在任何情况下都会起作用 - 无论你的价值是否领先于零。

于 2012-06-09T09:23:23.013 回答
1

没有必要在数据库中使用这个。毕竟,您将选择数据,不是吗?所以在选择时做这样的事情。我在谷歌中查找“mssql 数字前导零”。所有解决方案都像我提到的链接一样:) 或者显然,如果您出于某种原因必须在表中包含类似的数据,请使用 varchar :)

于 2012-06-09T08:30:46.060 回答
0

好吧,我认为这是不可能的,因为它被存储为 32 位,所以在打印时只需添加前导零......有多种方法。 http://sqlusa.com/bestpractices2005/padleadingzeros/

于 2012-06-09T08:31:31.493 回答