declare @startDate datetime
set @startDate = '2008-11-25'
-- First day of the month
select DATEADD(mm, DATEDIFF(mm,0,@startDate),
-- First day of the week
select DATEADD(wk, DATEDIFF(wk,0,@startDate),
-- First day of the year
select DATEADD(yy, DATEDIFF(yy,0,@startDate),
-- Last day of prior month
select DATEADD(dd,-1,DATEADD(mm, DATEDIFF(mm,0,@startDate),
-- Last day of prior year
select DATEADD(dd,-1,DATEADD(yy, DATEDIFF(yy,0,@startDate),
-- Last day of month
select DATEADD(dd,-1,DATEADD(mm, DATEDIFF(mm,0,@startDate)+
-- Last day of year
select DATEADD(dd,-1,DATEADD(yy, DATEDIFF(yy,0,@startDate)+
http://www.databasejournal