如何在start中为D
格式化字符串,为长度小于4的数字设置前导零。 E.g:
D1000
1000
{li> D0100
100
我曾尝试使用强制转换和stuff
函数,但它没有按预期工作。
SELECT STUFF('D0000', LEN(@OperatingEndProc) - 2, 4, CAST((CAST(SUBSTRING(@OperatingEndProc, 2, 4) AS INT) + 1) AS VARCHAR(10)));
答案 0 :(得分:2)
向该值添加10000将导致该数字首先具有额外的零,然后将其转换为varchar,并且仅使用最后的4将忽略添加的10000.这要求所有数字都在0到9999之间
declare @value int = 100
select 'D' + right(cast(@value + 10000 as varchar(5)), 4)
答案 1 :(得分:0)
当你想要获得适当的铸造实践时,这个插图板可以派上用场。
这显示了所有显式和隐式数据类型转换 允许SQL Server系统提供的数据类型。这些包括xml, bigint和sql_variant。分配时没有隐式转换 来自sql_variant数据类型,但有隐式转换 SQL_VARIANT
您可以在此处下载http://www.microsoft.com/en-us/download/details.aspx?id=35834