declare @ThisDate datetime;

set @ThisDate = getdate();

select dateadd(dd, datediff(dd, 0, @ThisDate), 0) — Beginning of this day

select dateadd(dd, datediff(dd, 0, @ThisDate) + 1, 0) — Beginning of next day

select dateadd(dd, datediff(dd, 0, @ThisDate) – 1, 0) — Beginning of previous day

select dateadd(wk, datediff(wk, 0, @ThisDate), 0) — Beginning of this week (Monday)

select dateadd(wk, datediff(wk, 0, @ThisDate) + 1, 0) — Beginning of next week (Monday)

select dateadd(wk, datediff(wk, 0, @ThisDate) – 1, 0) — Beginning of previous week (Monday)

select dateadd(mm, datediff(mm, 0, @ThisDate), 0) — Beginning of this month

select dateadd(mm, datediff(mm, 0, @ThisDate) + 1, 0) — Beginning of next month

select dateadd(mm, datediff(mm, 0, @ThisDate) – 1, 0) — Beginning of previous month

select dateadd(qq, datediff(qq, 0, @ThisDate), 0) — Beginning of this quarter (Calendar)

select dateadd(qq, datediff(qq, 0, @ThisDate) + 1, 0) — Beginning of next quarter (Calendar)

select dateadd(qq, datediff(qq, 0, @ThisDate) – 1, 0) — Beginning of previous quarter (Calendar)

select dateadd(yy, datediff(yy, 0, @ThisDate), 0) — Beginning of this year

select dateadd(yy, datediff(yy, 0, @ThisDate) + 1, 0) — Beginning of next year

select dateadd(yy, datediff(yy, 0, @ThisDate) – 1, 0) — Beginning of previous year