Click here to Skip to main content
15,893,814 members
Please Sign up or sign in to vote.
4.00/5 (1 vote)
HI I have Start Date=01/01/2010 and End Date=31/12/2010 now i want to select Month name between Start Date and End date in Sql Server. Like Jan, Feb, March......., Dec. How can I select It.
Posted

1 solution

try this

SQL
DECLARE @subscriptionstartdate DATETIME,
        @subscriptionenddate DATETIME
SET @subscriptionstartdate = '20100101'
SET @subscriptionenddate = '20101231'
;WITH
  L0 AS (SELECT 1 AS C UNION ALL SELECT 1)    --2 rows
 ,L1 AS (SELECT 1 AS C FROM L0 AS A, L0 AS B)  --4 rows (2x2)
 ,L2 AS (SELECT 1 AS C FROM L1 AS A, L1 AS B)  --16 rows (4x4)
 ,L3 AS (SELECT 1 AS C FROM L2 AS A, L2 AS B)  --256 rows (16x16)
 --,L4 AS (SELECT 1 AS C FROM L3 AS A, L3 AS B)  --65536 rows (256x256)
 --,L5 AS (SELECT 1 AS C FROM L4 AS A, L4 AS B)  --4,294,967,296 rows (65536x65536)
 ,Nums AS (SELECT row_number() OVER (ORDER BY (SELECT 0)) -1 AS N FROM L2)
SELECT DATENAME(MONTH,DATEADD(MONTH,n,@subscriptionstartdate)) AS MnthName
FROM Nums
WHERE N<=256 AND DATEADD(DAY,DATEDIFF(DAY,0,DATEADD(MONTH,n,@subscriptionstartdate)),0) <= @subscriptionenddate
GO
 
Share this answer
 
Comments
m@dhu 22-Mar-11 2:22am    
Nice!
Mahendra.p25 22-Mar-11 2:27am    
its working fine here . select from declare and run that in your sql server.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900