SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())-1, 0) as FirtDayPreviousMonthWithTimeStamp,
DATEADD(MS, -3, DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0)) as LastDayPreviousMonthWithTimeStamp
SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0) as FirtDayCurrentMonthWithTimeStamp,
DATEADD(MS, -3, DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())+1, 0)) as LastDayCurrentMonthWithTimeStamp
SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())+1, 0) as FirtDayNextMonthWithTimeStamp,
DATEADD(MS, -3, DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())+2, 0)) as LastDayNextMonthWithTimeStamp