2012-06-09 92 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); 

我認爲它會在任何情況下工作 - 無論您的價值是否領先於零。

相關問題