我们需要确定提取数据的具体日期。
例如,每月 1 日发生的交易在 2 日过帐到会计系统,而在当月最后一天发生的交易在下个月 1 日过帐到会计系统。
因此,虽然通常我可以只提取 10 月 10 日的所有记录,但现在我需要提取日期在 10 月 2 日和 11 月 2 日之前的记录。
我有下面的代码来获取最早的日期(如果是周末也没关系,因为在这种情况下,记录将显示周末后第一个工作日的发布日期):
Declare @EarliestDate varchar(8), @SQL NVARCHAR(1000), @sDate varchar(8)
-- get data for the last 3 months
SET @EarliestDate= CAST(DATEPART(YEAR,DATEADD(m,-3, getdate())) AS VARCHAR(4))
+ RIGHT('00' + CAST(DATEPART(mm, DATEADD(m,-2, getdate())) AS varchar(2)), 2)+ '02'
现在我需要检查 11 月 1 日是否是周末,如果是,请使用下周一的日期。
我已经启动了下面的代码,但我无法让它正常工作:
Declare @LatestDate datetime
set @LatestDate = '01/11/2014'
if datepart(dw,@LatestDate) in (1,7)
Begin
set @LatestDate = DATEADD(d,1,@LatestDate )
End
请问你能告诉我哪里出错了吗?理想情况下,无论年份如何,它都应该全年工作,总是在每月 1 日之后获得第一个工作日。