DECLARE @DateStart DATETIME, @DateEnd DATETIME, @Date DATETIME SELECT @Date = GETDATE() --一个月的开始 SELECT @DateStart = CAST(FLOOR(CAST(@Date as Numeric(18,10))) + 1 - DAY(@Date) as DATETIME) --一个月的结束 SELECT @DateEnd=DATEADD(ms, -3, DATEADD(MM, 1, @DateStart)) --------一个月的开始和结束 SELECT @DateStart, @DateEnd --一天的开始 SELECT @DateStart = CAST(FLOOR(CAST(@Date as Numeric(18,10))) as DATETIME) --一天的结束 SELECT @DateEnd=DATEADD(ms, -3, @DateStart + 1) --一天的开始和结算 SELECT @DateStart, @DateEnd ---------------------------------------------------- --一个月的开始 SELECT @DateStart = CAST(FLOOR(CAST(@Date as Numeric(18,10))) + 1 - DAY(@Date) as DATETIME) --一年的开始 SELECT @DateStart = DATEADD(M, -month(@DateStart)+1, @DateStart) --一年的最后 SELECT @DateEnd=DATEADD(ms, -3, DATEADD(YEAR, 1, @DateStart)) --一年的开始和结算 SELECT @DateStart, @DateEnd