select @ as Date
,dateadd(year,datediff(year,0,@),0) as FirstDayOfYear
,dateadd(year,1+datediff(year,0,@),0)-1 as LastDayOfYear
,dateadd(quarter,datediff(quarter,0,@),0) as FirstDayOfQuarter
,dateadd(quarter,1+datediff(quarter,0,@),0)-1 as LastDayOfQuarter
,dateadd(month,datediff(month,0,@),0) as FirstDayOfMonth
,dateadd(month,1+datediff(month,0,@),0)-1 as LastDayOfMonth
,dateadd(week,datediff(week,0,@),0) as FirstDayOfWeek
,dateadd(week,1+datediff(week,0,@),0)-1 as LastDayOfWeek
select @ as Date
,dateadd(year,datediff(year,0,@),0) as FirstDayOfYear
,dateadd(year,1+datediff(year,0,@),0)-1 as LastDayOfYear
,dateadd(quarter,datediff(quarter,0,@),0) as FirstDayOfQuarter
,dateadd(quarter,1+datediff(quarter,0,@),0)-1 as LastDayOfQuarter
,dateadd(month,datediff(month,0,@),0) as FirstDayOfMonth
,dateadd(month,1+datediff(month,0,@),0)-1 as LastDayOfMonth
,dateadd(week,datediff(week,0,@),0) as FirstDayOfWeek
,dateadd(week,1+datediff(week,0,@),0)-1 as LastDayOfWeek
declare @str varchar(10)
select @str=datename(Week,dateadd(week,14,'2005-01-01'))
select case @str when '星期日' then dateadd(day,-1,dateadd(week,14,'2005-01-01'))
when '星期一' then dateadd(day,-1,dateadd(week,14,'2005-01-01'))
when '星期二' then dateadd(day,-2,dateadd(week,14,'2005-01-01'))
when '星期三' then dateadd(day,-3,dateadd(week,14,'2005-01-01'))
when '星期四' then dateadd(day,-4,dateadd(week,14,'2005-01-01'))
when '星期五' then dateadd(day,-5,dateadd(week,14,'2005-01-01'))
when '星期六' then dateadd(day,-6,dateadd(week,14,'2005-01-01')) end as '一周的开始',
case @str when '星期日' then dateadd(day,6,dateadd(week,14,'2005-01-01'))
when '星期一' then dateadd(day,5,dateadd(week,14,'2005-01-01'))
when '星期二' then dateadd(day,4,dateadd(week,14,'2005-01-01'))
when '星期三' then dateadd(day,3,dateadd(week,14,'2005-01-01'))
when '星期四' then dateadd(day,2,dateadd(week,14,'2005-01-01'))
when '星期五' then dateadd(day,1,dateadd(week,14,'2005-01-01'))
when '星期六' then dateadd(day,0,dateadd(week,14,'2005-01-01')) end as '一周的结束'