我正在尝试在SQL Server的列中插入值numeric(18, 0)
。
我无法在开头插入零。例如,添加022223
作为22223
...
我认为将列类型更改为varchar
会有效,但我不想改变表结构。
任何方法都可以在不改变表结构的情况下执行此操作。请帮助
答案 0 :(得分:1)
没有必要在数据库中使用它。你会,毕竟,选择数据,不是吗?因此,在选择this之类的时候。我在谷歌搜索“mssql numeeric leading 0”。所有的解决方案都像我提到的链接:)或者很明显,如果你出于某种原因必须在表格中有这样的数据,请使用varchar:)
答案 1 :(得分: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);
我认为它无论如何都会有效 - 无论你的价值是否为零。
答案 2 :(得分:0)
嗯,我不认为这是可能的,因为它被存储为32位,因此在打印时只需添加前导零... 有多种方法。 http://sqlusa.com/bestpractices2005/padleadingzeros/