在SQL Server中的数值数据类型之前插入零

时间:2012-06-09 08:22:57

标签: sql sql-server tsql

我正在尝试在SQL Server的列中插入值numeric(18, 0)

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

插入

我认为将列类型更改为varchar会有效,但我不想改变表结构。

任何方法都可以在不改变表结构的情况下执行此操作。请帮助

3 个答案:

答案 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/