如何將SQL Server中的nvarchar轉換爲十進制?如何將nvarchar轉換爲SQL中的十進制
我需要將值'38,716.1311'
轉換爲38716.1311。
我一直在使用這個方法嘗試,但無法成功轉換:
DECLARE @TempValue NVARCHAR(100) = '38,716.1311'
SELECT
CONVERT(DECIMAL(18, 2), @TempValue)
任何人都可以提出正確的查詢?在此先感謝
如何將SQL Server中的nvarchar轉換爲十進制?如何將nvarchar轉換爲SQL中的十進制
我需要將值'38,716.1311'
轉換爲38716.1311。
我一直在使用這個方法嘗試,但無法成功轉換:
DECLARE @TempValue NVARCHAR(100) = '38,716.1311'
SELECT
CONVERT(DECIMAL(18, 2), @TempValue)
任何人都可以提出正確的查詢?在此先感謝
只需從字符串轉換之前刪除逗號:
Select CONVERT(DECIMAL(18,2),replace('38,716.1311', ',', ''))
它的更好,如果@TempValue
是MONEY
所以它忽略逗號分隔
Declare @TempValue MONEY = '38,716.1311'
Select CAST(@TempValue AS DECIMAL(18,2))
Declare @TempValue nvarchar(100)
SET @TempValue = Replace('38,716.1311',',','')
Select cast(@TempValue AS DECIMAL(18,2))
- 我們不能轉換值像「38,716.1311」(NVARCHAR)先到DECIMAL,我們用空白「38716.1311」替換「,」然後用DECIMAL
儘管此代碼片段是受歡迎的,並且可能會提供一些幫助,但它會[如果包含* how *和* why *解釋](// meta.stackexchange.com/q/114762)解決問題。請記住,你正在爲將來的讀者回答這個問題,而不僅僅是現在問的人!請編輯您的答案以添加解釋,並指出適用的限制和假設。 –
用錢的數據類型,並轉換成十進制數據類型:
DECLARE @Col MONEY = '38,716.1311'
SELECT CONVERT(DECIMAL(20,4),@Col)
或更換逗號,並轉換成十進制
DECLARE @Col VARCHAR(100) = '38,716.1311'
SELECT CONVERT(DECIMAL(20,4),REPLACE(@Col,',',''))
通過刪除逗號REPLACE像這樣:
Declare @TempValue nvarchar = '38,716.1311'
Select CONVERT(DECIMAL(18,2),REPLACE('38,716.1311', ',', ''))
如何刪除逗號 –