sql中获取周、月、季度、年的第一天与最后一天

DECLARE @dt varchar(10)
SET @dt='2013-03-10'
--获取周一
SELECT DATEADD(wk, DATEDIFF(dd,0,@dt)/7, 0)
--获取周日
SELECT DATEADD(wk, DATEDIFF(dd,0,@dt)/7, 6)

--季度的第一天
SELECT CONVERT(datetime,
    CONVERT(char(8),
        DATEADD(Month,
            DATEPART(Quarter,@dt)*3-Month(@dt)-2,
            @dt),
        120)+'1')
--季度的最后一天
SELECT DATEADD(Day,-1,
    CONVERT(char(8),
        DATEADD(Month,
            1+DATEPART(Quarter,@dt)*3-Month(@dt),
            @dt),
        120)+'1')

--月的第一天
SELECT CONVERT(datetime,CONVERT(char(8),@dt,120)+'1')
--月的最后一天
SELECT DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,@dt),120)+'1')

--年的第一天
SELECT CONVERT(char(5),@dt,120)+'01-01'
--年的最后一天
SELECT CONVERT(char(5),@dt,120)+'12-31'

你可能感兴趣的:(sql中获取周、月、季度、年的第一天与最后一天)