使用日期查找SQL 2008中的最后一个星期一

时间:2012-12-21 07:45:36

标签: sql-server-2008

我有一个非常简单的查询

SELECT SUM(Balance) FROM TimeSystem
WHERE EmployeeNo = @EmployeeNo
AND RegDate BETWEEN @StartDate AND EndDate

现在,我已经获得了创建一个返回余额的查询的作业,但仅限于与@EndDate同一周的星期一。

所以我需要创建一个使用@EndDate的变量,并找到同一周的星期一日期,然后将其放在一个名为@Monday的变量中。

我只使用SQL大约3个月,所以我不确定这是否可以实现?

由于

2 个答案:

答案 0 :(得分:3)

declare @date datetime
set @date=GETDATE()

select DATEADD(wk, DATEDIFF(wk, 0,@date),0)

答案 1 :(得分:1)

备用版本,将在星期日获得前一个星期一:

DECLARE @date DATE

SET @date = '2017-06-18' -- GETDATE()

SELECT DATEADD(DAY
                 ,CASE DATEPART(WEEKDAY, @date)WHEN 1 THEN -6 ELSE (DATEPART(WEEKDAY, @date) - 2) * -1 END
                 ,@date
              )