如何在T-SQL中将int转换为零填充字符串?

fli*_*ubt 41 sql t-sql

假设我有一个值为1的int.如何将该int转换为零填充字符串,例如00000001

Cha*_*ana 40

Declare @MyInt integer Set @MyInt = 123
Declare @StrLen TinyInt Set @StrLen = 8

Select Replace(Str(@MyInt, @StrLen), ' ' , '0')
Run Code Online (Sandbox Code Playgroud)


Mit*_*eat 35

另一种方式是:

DECLARE @iVal int = 1
select REPLACE(STR(@iVal, 8, 0), ' ', '0')
Run Code Online (Sandbox Code Playgroud)


gor*_*rdy 31

从SQL Server 2012开始,您现在可以执行以下操作:

format(@int, '0000#')
Run Code Online (Sandbox Code Playgroud)

  • 我爱你gordy :) (3认同)

Ric*_*lda 9

这项工作对我来说:

SELECT RIGHT('000' + CAST(Table.Field AS VARCHAR(3)),3) FROM Table
Run Code Online (Sandbox Code Playgroud)

...

我创建了这个用户功能

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
Run Code Online (Sandbox Code Playgroud)

示例:

SELECT dbo.CIntToChar(867,6)AS COD_ID

OUTPUT

000867


Ili*_*row 5

使用FORMAT(<your number>,'00000000')尽可能多的零,因为您需要在最终结果中有数字。

这里是 FORMAT 函数的官方文档