SQL Server CONVERT int в varchar с заполнением

Возможный дубликат:
Самый эффективный способ T-SQL дополнить varchar слева до определенной длины?

Я возвращаю числовое значение недели с учетом даты и времени с помощью функции datepart в SQL. Затем я конвертирую это в varchar, чтобы построить строку. Моя проблема в том, что мне нужны недели со значением меньше 10, чтобы стать «01» вместо «1». Мне это нужно, потому что оно хранится таким образом в другой базе данных.

Мой вопрос: есть ли какая-то спецификация, которую я могу дать функции CONVERT, чтобы заставить varchar иметь длину 2 вместо длины 1?

Вот утверждение, которое у меня есть прямо сейчас:

convert(varchar(2),datepart(ww,'2013-1-3 11:00:00.000'))

Могу ли я вернуть «01» вместо «1»?


person user912447    schedule 27.12.2012    source источник
comment
См. stackoverflow.com/questions/5540064/padleft-function- in-t-sql   -  person David    schedule 27.12.2012
comment
Это сделало это. Я использовал ответ Мартина Смита, используя функцию ВПРАВО. Спасибо   -  person user912447    schedule 27.12.2012


Ответы (1)


Заверните в:

right('0' + convert(...), 2)

Альтернативно:

right(100 + datepart(ww, ...), 2)
person Andomar    schedule 27.12.2012
comment
Да, это работает. Вы также можете использовать RTRIM вместо CONVERT, вы можете просто сделать: right ('0' + rtrim (datepart (ww, '2013-4-20 11: 00: 00.000')), 2) - person user912447; 27.12.2012