Get all Dates plus days name between two Date in SQL

  1. declare @FromDate DATETIME declare @ToDate DATETIME  
  2. set  
  3. @FromDate = '2015-01-01'  
  4. set  
  5. @ToDate = '2015-12-31' DECLARE @TOTALCount INT  
  6. SET  
  7. @FromDate = DATEADD(DAY,-1, @FromDate)  
  8. Select  
  9. @TOTALCount = DATEDIFF(DD, @FromDate, @ToDate);  
  10. WITH d AS (  
  11. SELECT  
  12. top (@TOTALCount) AllDays = DATEADD(  
  13. DAY,  
  14. ROW_NUMBER() OVER (  
  15. ORDER BY  
  16. object_id  
  17. ),  
  18. REPLACE(@FromDate, '-''')  
  19. )  
  20. FROM  
  21. sys.all_objects  
  22. )  
  23. select  
  24. DATENAME(DW, AllDays),  
  25. AllDays  
  26. From  
  27. d  
  28. where  
  29. AllDays not in (  
  30. select  
  31. Cal_Date  
  32. from  
  33. NseData..Tbl_Holiday  
  34. )