独特的开始和结束生效日期方案

时间:2016-07-14 12:28:37

标签: sql-server date

好的,所以我有一个我每周运行的SQL查询,现在需要每月运行一次。在查询中,我有一个开始生效日期和报告应该提取的日期范围的结束生效日期。现在我想要做的是开始和结束日期的公式。

我希望从今天开始的上个月开始生效日期,然后是上个月的最后一个星期一。

结束生效日期我希望成为产品详细信息表格中的最大修改日期。

我知道我在找什么,但我不确定如何在代码中写这个?感谢!!!

2 个答案:

答案 0 :(得分:1)

试试这个

    declare @dt datetime
set @dt=GETDATE()
select DATEADD(WEEK,DATEDIFF(WEEK,0,DATEADD(DAY,DATEPART(DAY,dateadd(m,-1,GETDATE())),dateadd(m,-1,GETDATE()))), 0) StartDate

答案 1 :(得分:1)

这应该可以解决问题:

DECLARE @Today date = convert(date, getdate());
DECLARE @Monday tinyint = 1;
DECLARE @LastDayOfMonth date = DATEADD(d,-1,DATEADD(month, DATEDIFF(month, 0, @Today), 0));
DECLARE @LastWeekDayOfMonth int = datepart(weekday,DATEADD(d,-1,DATEADD(month, DATEDIFF(month, 0, @Today), 0)));

SELECT DATEADD(d, @Monday-@LastWeekDayOfMonth+1, @LastDayOfMonth) AS LastMonday