2016-12-17 36 views
-2

我想在SQL Server 2014中Dot(。)位置的Decimal(12,2)Datatype列中存儲逗號(,),但無法實現此功能。如何在SQL Server中存儲逗號而不是點Dotimal列

我需要以下行爲: 當我在數據庫表中保存十進制值2.56,然後它會自動保存我應該適用於SQL Server的設置是什麼這個值2.56

,這樣它會直接轉換並保存十進制點(。)到逗號(,)?

是否有任何SQL Server排序規則或區域設置來保存十進制(12,2)數據類型列中的逗號?

+0

您可以使用替換(Column,'。',',') –

+5

DECIMAL在SQL Server中以**二進制**格式存儲 - 它既沒有點也沒有逗號或任何其他內容。這只是一個**顯示**問題 - 根據您的語言設置,您將得到一個點或逗號作爲小數點分隔符 –

+0

您如何顯示數字? –

回答

0

SQL語法使用點(。)作爲小數點分隔符。你不能改變這一點。

由於您的語言環境設置,您將獲得2,56個。所有的查詢應該總是使用點(。)

+0

我沒有得到2,56,但我想這種行爲,以便它用逗號存儲小數。 你知道我應該使用哪種語言環境來達到此目的嗎? – Asif

0

如果我理解正確,你不關心什麼SQL存儲。你想要的是在查詢表格時使用逗號而不是點。

如果是這樣:假設您的列Average的數據類型爲decimal

你可以這樣做:

SELECT REPLACE(CAST(Average AS NVARCHAR), '.', ',') 
FROM your_table 
3

SQL Server存儲在內部的二元結構十進制值不包括小數點分隔符。用於顯示數據的分隔符完全由客戶端應用程序控制。因此,沒有SQL Server設置來控制它。

儘管您可以使用T-SQL將十進制值轉換爲包含所需分隔符的字符串,但最佳做法是在表示層中執行此操作,您可以在其中擁有更多可以遵守客戶端語言和語言環境的健壯功能。

相關問題