I have an integer column "Month" I would like to get 2 digit number for month.
This is what I have tried: DATEPART(mm, @Date)
It returns one digit for months January to September I am using SQL Server 2008
Anyone has suggestion?
I have an integer column "Month" I would like to get 2 digit number for month.
This is what I have tried: DATEPART(mm, @Date)
It returns one digit for months January to September I am using SQL Server 2008
Anyone has suggestion?
there are different ways of doing it
like
SELECT RIGHT('0' + RTRIM(MONTH('12-31-2012')), 2);
like
SELECT SUBSTRING(CONVERT(nvarchar(6),getdate(), 112),5,2)
see Fiddle
There may be other ways to get this.
Function
FORMAT(date,'MM')
will do the job with two digit.
there are different ways of doing it
like
SELECT RIGHT('0' + RTRIM(MONTH('12-31-2012')), 2);
like
SELECT SUBSTRING(CONVERT(nvarchar(6),getdate(), 112),5,2)
see Fiddle
There may be other ways to get this.
Pinal Dave has a nice article with some examples on how to add trailing 0s to SQL numbers.
One way is using the RIGHT
function, which would make the statement something like the following:
SELECT RIGHT('00' + CAST(DATEPART(mm, @date) AS varchar(2)), 2)
GETDATE()
makes a difference? –
Redintegration Another simple trick:
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)
Outputs:
01
201501
CONVERT(char(2), getdate(), 101)
20
. While this may have worked for you with your configuration this isn't a safe way to achieve this. –
Kingship 101 = mm/dd/yyyy
so this will always work wherever your server is based. thanks @andrewr for correcting me. [I added a single space to the answer so as to be able to upvote it] –
Kingship append 0 before it by checking if the value falls between 1 and 9 by first casting it to varchar
select case when DATEPART(month, getdate()) between 1 and 9
then '0' else '' end + cast(DATEPART(month, getdate()) as varchar(2))
For me the quickest solution was
DATE_FORMAT(CURDATE(),'%m')
Simply can be used:
SELECT RIGHT('0' + CAST(MONTH(@Date) AS NVARCHAR(2)), 2)
Try this command:
SELECT FORMAT(MONTH(CAST(GETDATE() AS DATE)), '00') AS MonthNumberFormatted;
It will format month number in 2 digit format.
Try:
select right ('0'+convert(nvarchar(2), DATEPART(mm, getdate())),2 )
My way of doing it is:
right('0'+right(datepart(month,[StartDate]),2),2)
The reason for the internal 'right' function is to prevent SQL from doing it as math add - which will leave us with one digit again.
SELECT REPLACE(CONVERT(varchar, MONTH(GetDate()) * 0.01), '0.', '')
© 2022 - 2025 — McMap. All rights reserved.