我正在尝试在类型为numeric(18, 0)
的SQL Server中的列中插入一个值。在SQL Server中的数字数据类型之前插入零
我无法在开头插入零。例如,添加022223
被插入为22223
...
我认为将列类型更改为varchar
可以工作,但我不想更改表结构。
任何方式做到这一点不改变表structure..Please帮助
我正在尝试在类型为numeric(18, 0)
的SQL Server中的列中插入一个值。在SQL Server中的数字数据类型之前插入零
我无法在开头插入零。例如,添加022223
被插入为22223
...
我认为将列类型更改为varchar
可以工作,但我不想更改表结构。
任何方式做到这一点不改变表structure..Please帮助
没有一点有这个数据库中。毕竟,你会选择数据,不是吗?所以选择时请做些类似this的事情。我在谷歌搜索“mssql分子前导零”。所有的解决方案就像我提到的链接:)或者显然,使用varchar,如果你出于某种原因,必须在表中有这样的数据:)
实际上所有的变量没有零之前,所以我不能在他们之前追加值。可能我应该更改数据库列的时间varchar – Karthik
@karthi:做**不**只是为显示目的更改数据类型!如果你存储的值确实是一个数字,你应该使用数字数据类型!正在存储的数据不应该只为某些显示“美观”而改变 - 您可以随时更改报告或应用程序界面上的显示。不要**选择一个“错误”的数据类型来处理一些显示需求!你会后悔的 - 比早些时候更早..... –
嗯,我不认为这是可能的,因为它的存在存储为32位,因此打印时只需添加前导零... 有多种方法。 http://sqlusa.com/bestpractices2005/padleadingzeros/
阅读并插入这样的价值的时候,你可以申请转换:
插入时值:
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);
我认为它会在任何情况下工作 - 无论您的价值是否领先于零。
什么是列数据类型? –
@BehnamEsmaili它的数字(18,0) – Karthik
您也可以在从数据库中选择时添加零,这应该会导致相同的效果。 – Eggi