我正在嘗試在類型爲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