Is it possible to get month names
between two dates in SQl
ie, 2011-05-01
And 2011-08-01
are the inputs I just want the output as
------------ Month ------------ May June July August
If any body knows the query please share.
To find the number of months or days between two dates, type into a new cell: =DATEDIF(A1,B1,”M”) for months or =DATEDIF(A1,B1,”D”) for days.
To get around this, bump the date by one in the end. For example, June 1, 2000 to June 1, 2001 is less than twelve months. However, June 1, 2000 to June 2, 2001 is 12 months.
The YEARFRAC function returns the year fraction representing the number of whole days between start_date and end_date. ⇒ Type =INT(YEARFRAC(C4,D4)*12) & press Enter. You'll see the same result as found before.
DECLARE @StartDate DATETIME, @EndDate DATETIME; SELECT @StartDate = '20110501' ,@EndDate = '20110801'; SELECT DATENAME(MONTH, DATEADD(MONTH, x.number, @StartDate)) AS MonthName FROM master.dbo.spt_values x WHERE x.type = 'P' AND x.number <= DATEDIFF(MONTH, @StartDate, @EndDate);
Results:
MonthName ------------------------------ May June July August (4 row(s) affected)
You can do this with a recursive CTE, by building up a table of dates, and getting the month name from each:
declare @start DATE = '2011-05-01' declare @end DATE = '2011-08-01' ;with months (date) AS ( SELECT @start UNION ALL SELECT DATEADD(month,1,date) from months where DATEADD(month,1,date)<=@end ) select Datename(month,date) from months
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With