2012-06-09 43 views
0

我正在尝试在类型为numeric(18, 0)的SQL Server中的列中插入一个值。在SQL Server中的数字数据类型之前插入零

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

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

任何方式做到这一点不改变表structure..Please帮助

+1

什么是列数据类型? –

+0

@BehnamEsmaili它的数字(18,0) – Karthik

+2

您也可以在从数据库中选择时添加零,这应该会导致相同的效果。 – Eggi

回答

1

没有一点有这个数据库中。毕竟,你会选择数据,不是吗?所以选择时请做些类似this的事情。我在谷歌搜索“mssql分子前导零”。所有的解决方案就像我提到的链接:)或者显然,使用varchar,如果你出于某种原因,必须在表中有这样的数据:)

+0

实际上所有的变量没有零之前,所以我不能在他们之前追加值。可能我应该更改数据库列的时间varchar – Karthik

+3

@karthi:做**不**只是为显示目的更改数据类型!如果你存储的值确实是一个数字,你应该使用数字数据类型!正在存储的数据不应该只为某些显示“美观”而改变 - 您可以随时更改报告或应用程序界面上的显示。不要**选择一个“错误”的数据类型来处理一些显示需求!你会后悔的 - 比早些时候更早..... –

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); 

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

相关问题