a) Find the last day of the previous month, current month and next month.    Last Day of Previous Month   SELECT  DATEADD ( s ,- 1 , DATEADD ( mm ,  DATEDIFF ( m , 0 , GETDATE ()), 0 ))   Last Day of Current Month    SELECT  DATEADD ( s ,- 1 , DATEADD ( mm ,  DATEDIFF ( m , 0 , GETDATE ())+ 1 , 0 ))   Last Day of Next Month    SELECT  DATEADD ( s ,- 1 , DATEADD ( mm ,  DATEDIFF ( m , 0 , GETDATE ())+ 2 , 0 ))   b) . Last day of any day specified.    Last Day of Any Month and Year   DECLARE  @dtDate  DATETIME SET  @dtDate  =  '8/18/2007' SELECT  DATEADD ( s ,- 1 , DATEADD ( mm ,  DATEDIFF ( m , 0 , @dtDate )+ 1 , 0 ))