select
dateadd(yy, datediff(yy, 0, '2009/12/30'), 0) YearFDt -- 當年度第1天
,DATEADD(mm, DATEDIFF(mm, '', '2009/12/30')-2, '') Pre2FDt -- 前2個月第1天
,DATEADD(day, -1, DATEADD(mm, DATEDIFF(mm, '', '2009/12/30')-1, '')) Pre2EDt -- 前2個月最後1天
,DATEADD(mm, -1, DATEADD(mm, DATEDIFF(mm, '', '2009/12/30'), '')) Pre1FDt -- 前1個月第1天
,DATEADD(day, -1, DATEADD(mm, DATEDIFF(mm, '', '2009/12/30'), '')) Pre1EDt -- 前1個月最後1天
,DATEADD(mm, DATEDIFF(mm, '', '2009/12/30'), '') CurrFDt -- 當月第1天
,DATEADD(day, -1, DATEADD(mm, DATEDIFF(mm, '', '2009/12/30')+1, '')) CurrEdt -- 當月最後1天
,DATEADD(mm, DATEDIFF(mm, '', '2009/12/30')+1, '') LastFDt -- 後1個月第1天
,DATEADD(day, -1, DATEADD(mm, DATEDIFF(mm, '', '2009/12/30')+2, '')) LastEDt -- 後1個月最後1天
,dateadd(yy, datediff(yy, 0, '2009/12/30')+1, -1) YearEDt-- 當年度最後1天
--DATEPART(dw, GETDATE())=2 Monday
--//每週起始第一天是星期天
,Getdate()-DATEPART(dw, GETDATE()-7)+1 currwkSun1
,Getdate()-DATEPART(dw, GETDATE()-7)+7 CurrwkSay
--//每週起始第一天是星期一
,Getdate()-DATEPART(dw, GETDATE())+2 currwkMon
,Getdate()-DATEPART(dw, GETDATE())+8 CurrwkSun
--//上一週起始第一天是星期天
,Getdate()-7-DATEPART(dw, GETDATE()-7)+1 laswkSun1
,Getdate()-7-DATEPART(dw, GETDATE()-7)+7 laswkSay
--//上一週起始第一天是星期一
,Getdate()-7-DATEPART(dw, GETDATE()-7)+2 laswkMon
,Getdate()-7-DATEPART(dw, GETDATE()-7)+8 laswkSun