Find First, Last Date of Previous and Next Month in SQL

Some time we required to find out the current date , first and last date of previous or next month.  We can use below code for all these requirements.

This code return the First and last  Date of previous  month , Current date , last date of current month and first date of next month. 

  1. DECLARE @TODAY_DATE DATETIME;  
  2. SELECT  
  3. @TODAY_DATE = GETDATE();  
  4. SELECT  
  5. CONVERT(  
  6. VARCHAR(25),  
  7. DATEADD(  
  8. DD,  
  9. -(  
  10. DAY(@TODAY_DATE) -1  
  11. ),  
  12. @TODAY_DATE  
  13. ),  
  14. 103  
  15. AS DATE_,  
  16. 'FIRST DATE OF PREVIOUS MONTH' AS DATE_NAME  
  17. UNION ALL  
  18. SELECT  
  19. CONVERT(  
  20. VARCHAR(25),  
  21. DATEADD(  
  22. DD,  
  23. -(  
  24. DAY(@TODAY_DATE)  
  25. ),  
  26. @TODAY_DATE  
  27. ),  
  28. 103  
  29. AS DATE_,  
  30. 'LAST DATE OF PREVIOUS MONTH' AS DATE_NAME  
  31. UNION ALL  
  32. SELECT  
  33. CONVERT(  
  34. VARCHAR(25),  
  35. @TODAY_DATE,  
  36. 103  
  37. AS DATE_,  
  38. 'TODAY DATE' AS DATE_NAME  
  39. UNION ALL  
  40. SELECT  
  41. CONVERT(  
  42. VARCHAR(25),  
  43. DATEADD(  
  44. DD,  
  45. -(  
  46. DAY(  
  47. DATEADD(MM, 1, @TODAY_DATE)  
  48. ) -1  
  49. ),  
  50. DATEADD(mm, 1, @TODAY_DATE)  
  51. ),  
  52. 103  
  53. AS DATE_NAME,  
  54. 'FIRST DATE OF NEXT MONTH'  
  55. UNION ALL  
  56. SELECT  
  57. CONVERT(  
  58. VARCHAR(25),  
  59. DATEADD(  
  60. DD,  
  61. -(  
  62. DAY(  
  63. DATEADD(MM, 1, @TODAY_DATE)  
  64. )  
  65. ),  
  66. DATEADD(mm, 1, @TODAY_DATE)  
  67. ),  
  68. 103  
  69. AS DATE_NAME,  
  70. 'LAST DATE OF CURRENT MONTH' GO