It's flexible, because you can use the same pattern to achieve other rounding effects. E.g. to get the first of the month, you can dateadd/datediff month rather than day. It can also be used to find, e.g. the end of the month for the given date, or the end of the month, 3 months from the given date.
My preference (because of its flexibility) is
DATEADD
/DATEDIFF
:It's flexible, because you can use the same pattern to achieve other rounding effects. E.g. to get the first of the month, you can dateadd/datediff month rather than day. It can also be used to find, e.g. the end of the month for the given date, or the end of the month, 3 months from the given date.