假设我有一个值为1的int.如何将该int转换为零填充字符串,例如00000001
?
Declare @MyInt integer Set @MyInt = 123 Declare @StrLen TinyInt Set @StrLen = 8 Select Replace(Str(@MyInt, @StrLen), ' ' , '0')
另一种方式是:
DECLARE @iVal int = 1 select REPLACE(STR(@iVal, 8, 0), ' ', '0')
从SQL Server 2012开始,您现在可以执行以下操作:
format(@int, '0000#')
这项工作对我来说:
SELECT RIGHT('000' + CAST(Table.Field AS VARCHAR(3)),3) FROM Table
...
我创建了这个用户功能
T-SQL代码:
CREATE FUNCTION CIntToChar(@intVal Int, @intLen Int) RETURNS nvarchar(24) AS BEGIN IF @intlen > 24 SET @intlen = 24 RETURN REPLICATE('0',@intLen-LEN(RTRIM(CONVERT(nvarchar(24),@intVal)))) + CONVERT(nvarchar(24),@intVal) END
示例:
SELECT dbo.CIntToChar(867,6)AS COD_ID
OUTPUT
000867