Подтвердить что ты не робот

Получите 2-значный номер за месяц

У меня есть целочисленный столбец "Месяц" Я хотел бы получить 2-значное число в течение месяца.

Это то, что я пробовал: DATEPART (mm, @Date)

Он возвращает одну цифру в течение месяцев с января по сентябрь Я использую SQL Server 2008

У кого-нибудь есть предложение?

4b9b3361

Ответ 1

есть разные способы сделать это

  • Использование RTRIM и определение диапазона :

like

SELECT RIGHT('0' + RTRIM(MONTH('12-31-2012')), 2); 
  • Используя Подстрока, чтобы просто извлечь часть месяца после преобразования даты в текст

как

SELECT SUBSTRING(CONVERT(nvarchar(6),getdate(), 112),5,2)

см. Fiddle

Могут быть другие способы получить это.

Ответ 2

Функция

FORMAT(date,'MM') 

выполнит задание с двумя цифрами.

Ответ 3

В Pinal Dave есть хорошая статья с некоторыми примерами о том, как добавить конечные 0s к номерам SQL.

В одном из способов используется функция RIGHT, которая сделает оператор примерно следующим:

SELECT RIGHT('00' + CAST(DATEPART(mm, @date) AS varchar(2)), 2)

Ответ 4

Еще один простой трюк:

SELECT CONVERT(char(2), cast('2015-01-01' as datetime), 101) -- month with 2 digits
SELECT CONVERT(char(6), cast('2015-01-01' as datetime), 112) -- year (yyyy) and month (mm)

Выходы:

01
201501

Ответ 5

Альтернатива DATEPART

SELECT LEFT(CONVERT(CHAR(20), GETDATE(), 101), 2)

Ответ 6

добавьте 0 перед этим, проверив, имеет ли значение значение между 1 и 9, сначала введя его в varchar

select case when DATEPART(month, getdate()) between 1 and 9 
then '0' else '' end + cast(DATEPART(month, getdate()) as varchar(2))

Ответ 7

Просто можно использовать:

SELECT RIGHT('0' + CAST(MONTH(@Date) AS NVARCHAR(2)), 2)

Ответ 8

Try:

select right ('0'+convert(nvarchar(2), DATEPART(mm, getdate())),2 )

Ответ 9

CONVERT (char (2), getdate(), 101)

Ответ 10

Для меня самым быстрым решением было

DATE_FORMAT(CURDATE(),'%m')

Ответ 11

Мой способ сделать это:

right('0'+right(datepart(month,[StartDate]),2),2)

Причина внутренней "правильной" функции состоит в том, чтобы не допустить, чтобы SQL делал это как математическое сложение, что снова оставит нам одну цифру.