I'm trying to convert my Date which is (eg. 2012-04-20 05:54:59) format in into mm-yyyy. I came across some solutions that says you would need to convert into varchar . Is there any way using the Convert function ?
Thanks :)
I'm trying to convert my Date which is (eg. 2012-04-20 05:54:59) format in into mm-yyyy. I came across some solutions that says you would need to convert into varchar . Is there any way using the Convert function ?
Thanks :)
You can use FORMAT
function, available from SQL Server 2012 onwards:
DECLARE @myDate DATETIME = '2012-04-20 05:54:59'
SELECT FORMAT(@myDate, 'MM-yyyy')
Output:
04-2012
select FORMAT([date], 'MM-yyyy') from dbo.EOD
–
Intuition There might be a more graceful way to pull this off, but the below works.
Declare @dt datetime = GETDATE()
SELECT LEFT('0' + CAST(MONTH(@dt) as varchar(2)),2) + '-' + CAST(YEAR(@dt) as char(4))
btw my normal Date Conversion cheat sheet is here, but I'm not seeing MM-YYYY as one of the formats.
select [MM-YYYY] = right(convert(varchar(10),getdate(),105),7)
As you are using SQL Server 2014, You can use FORMAT
which is the best also you can apply this:
SELECT CONVERT(VARCHAR(2),MONTH(yourDateTimeField)) + '-' +
CONVERT(VARCHAR(4),YEAR(yourDateTimeField)) AS [MM-YYYY]
FROM yourTable
ORDER BY yourDateTimeField
I originally used the accepted answer, I needed it in an aggregate query. It was slow. This might be just a different way of doing it, but I like this one.
select right('00' + cast(month(@YOURDATE) as varchar), 2) + '-' + cast(year(@YOURDATE) as varchar)
© 2022 - 2024 — McMap. All rights reserved.
SELECT RIGHT(CONVERT(VARCHAR(10), GETDATE(), 105) , 7)
– Tallie