SQL Server 2005中的CONVERT函数

时间:2011-12-29 08:20:15

标签: sql-server-2005

我们可以在带有转换功能的SQL Server 2005查询中执行以下操作。

MaxRegID =  (1).ToString("D5"); // c# code
MaxRegID = 00001

在列

中转换(1)5位数字

1 个答案:

答案 0 :(得分:1)

否 - 现在,SQL Server没有等效于.NET中的Format(在.ToString()中使用)。

您可以通过以下方式实现此目的:

SELECT RIGHT('00000' + CAST(1 AS VARCHAR(5)), 5)

SQL Server 2012(“Denali”)将introduce a FORMAT T-SQL function

您还可以为此创建一个通用功能 - 例如:

CREATE FUNCTION dbo.PadInt(@input INT, @length INT)
RETURNS VARCHAR(20)
AS BEGIN
    DECLARE @Result VARCHAR(20)

    DECLARE @Padding VARCHAR(20) 
    SELECT @Padding = REPLICATE('0', @Length)

    SELECT @Result = RIGHT(@Padding + CAST(@Input AS VARCHAR(20)), @Length)
    RETURN @Result
END

并将其称为:

SELECT dbo.PadInt(1, 5)

然后回来:

00001