• Assuming time part is not to be considered and that you need this for only 3 date spans (if you need for more one could Recursive CTE for this) :

    -- The two dates for first condition

    select DATEADD(m,DATEDIFF (m,'19000101',GETDATE()),'19000101')

    select GETDATE()

    -- The two dates for second condition

    select DATEADD(m,-1,DATEADD(m,DATEDIFF (m,'19000101',GETDATE()),'19000101'))

    select DATEADD(m,-1,GETDATE())

    -- The two dates for third condition

    select DATEADD(m,-2,DATEADD(m,DATEDIFF (m,'19000101',GETDATE()),'19000101'))

    select DATEADD(m,-2,GETDATE())

    The only variable in these 6 dates is getdate() (which of course can be replaced with any other date u want)...

    "The price of anything is the amount of life you exchange for it" - Henry David Thoreau