我有一个脚本,我必须手动运行几次,但现在它看起来需要每月运行两次。问题是日期是动态的,工作需要在每个月的1号和16号运行,但需要提取过去16天的所有数据。例如,如果我们在本月的第一天(1月)运行它,那么日期将是> = 2016-12,16和< = 2016-12-31
我一直在查看sql server的日期函数,但我不确定它是否适用于我需要的东西。
答案 0 :(得分:0)
我会查看DateAdd,并在该值中添加负数日期,以便返回16天。
select
custKey,
sum(salesAmt) as Sales,
sum(returnAmt) as Credit,
(sum(salesAmt) - sum(returnAmt)) as CONNET
from
[SpotFireStaging].[dbo].[tsoSalesAnalysis]
inner join
[SpotFireStaging].[dbo].OOGPLensDesc as o on tsoSalesAnalysis.ItemKey = O.ItemKey
where
PostDate between --DATEADD(MONTH, DATEDIFF(MONTH,0, GETDATE())-1,0 )
--AND DATEADD(MS, -3,DATEADD(MM, DATEDIFF(M,-1, GETDATE()) -1, 0))
'2016-12-01' and '2017-01-01'
group by
custkey
我个人只是用cron运行一个脚本并将其设置为每个月的1日和16日运行。