Функция CONVERT в SQL Server 2005 - PullRequest
1 голос
/ 29 декабря 2011

Можем ли мы выполнить следующие действия в запросе SQL Server 2005 с функцией преобразования.

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

число преобразования (1) с 5 цифрами в столбце

1 Ответ

1 голос
/ 29 декабря 2011

Нет - сейчас SQL Server не имеет эквивалента Format (используется в .ToString()) в .NET.

Этого можно достичь с помощью:

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

SQL Server 2012 («Denali») будет вводить FORMAT функцию T-SQL

Для этого вы также можете создать функцию общего назначения, например:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...