2013-06-04 36 views
1

如何在開始時對D字符串進行格式化,並將長度小於4的數字作爲前導零。 E.g:數值爲SQL Server 2005中的格式字符串

  • D10001000
  • D0100100

我試圖與鑄造和stuff功能工作,但我希望它沒有工作。

SELECT STUFF('D0000', LEN(@OperatingEndProc) - 2, 4, CAST((CAST(SUBSTRING(@OperatingEndProc, 2, 4) AS INT) + 1) AS VARCHAR(10))); 

回答

2

增加10000至值將導致數有有多餘的零,然後再鑄造它爲varchar和只有用最後的4會忽略加10000這要求所有的數字是0和9999之間

declare @value int = 100 

select 'D' + right(cast(@value + 10000 as varchar(5)), 4) 
+0

工作就像一個魅力。你能提供一些解釋嗎? – vmeln

0

這說明板可以派上用場,當你想獲得合適的鑄造實踐..

這說明所有的顯性和隱性的數據類型轉換是 允許SQL Server系統提供的數據類型。這些包括xml, bigint和sql_variant。有從SQL_VARIANT數據類型分配 的隱式轉換,但隱式轉換 SQL_VARIANT

The following illustration shows all explicit and implicit data type conversions that are allowed for SQL Server system-supplied data types. These include xml, bigint, and sql_variant. There is no implicit conversion on assignment from the sql_variant data type, but there is implicit conversion to sql_variant.

你可以在這裏下載http://www.microsoft.com/en-us/download/details.aspx?id=35834

+0

它是如何觸及我的問題的? – vmeln

相關問題