Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL Server中的数字数据类型之前插入零_Sql_Sql Server_Tsql - Fatal编程技术网

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

在SQL Server中的数字数据类型之前插入零,sql,sql-server,tsql,Sql,Sql Server,Tsql,我试图在SQL Server中的一列中插入一个类型为numeric(18,0)的值 我无法在开头插入零。例如,添加022223将作为22223插入 我认为将列类型更改为varchar会起作用,但我不想更改表结构 在不更改表结构的情况下执行此操作的任何方法。请帮助在数据库中使用此功能没有任何意义。毕竟,你会选择数据的,不是吗?因此,在选择时,请执行以下操作。我在谷歌搜索“mssql numeeric前导零”。所有的解决方案都与我提到的链接类似:)或者,如果出于某种原因,必须在表中包含类似的数据,则

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

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

我认为将列类型更改为
varchar
会起作用,但我不想更改表结构


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

在数据库中使用此功能没有任何意义。毕竟,你会选择数据的,不是吗?因此,在选择时,请执行以下操作。我在谷歌搜索“mssql numeeric前导零”。所有的解决方案都与我提到的链接类似:)或者,如果出于某种原因,必须在表中包含类似的数据,则可以使用varchar:)

我认为这是不可能的,因为它存储为32位,所以在打印时只需添加前导零。。。 有多种方法。

在读取和插入如下值时,可以应用转换:

插入值时:

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)您也可以在从数据库中选择时添加零,这应该会产生相同的效果。数值是数值-它没有前导零或其他格式应用于它。如果您需要用前导零来显示它-在您的报表工具或UI前端中这样做-这不是SQL Server的工作。@Eggi所有值都没有前导零。因此不能这样做。实际上,所有变量前面都没有零,因此我不能在它们前面附加值。可能我应该将数据库列时间更改为varchar@karthi:请勿仅出于显示目的更改数据类型!如果存储的值确实是数字,则应使用数字数据类型!存储的数据不应该仅仅为了一些“装饰性”的显示而改变——您可以随时更改报表或应用程序UI上的显示。不要仅仅为了处理某些显示要求而选择“错误”的数据类型!你会后悔的——迟早。。。。。