我在本月1日运行一个存储过程,该过程获取上个月的所有数据并将其放入另一个表中。我这样做:
DECLARE @startOfCurrentMonth DATETIME
SET @startOfCurrentMonth = DATEADD(month, DATEDIFF(month, 0, CURRENT_TIMESTAMP), 0)
insert into ThisTable
select Things
from AnotherTable
where AppsEntryDate >= DATEADD(month, -1, @startOfCurrentMonth)
and AppsEntryDate < @startOfCurrentMonth
我现在需要构建另一个每年执行此操作的查询。所以,现在是三月。我需要使用相同的结构输入2015年1月1日到2015年2月28日的所有数据。诀窍是,在2016年1月1日,我需要它来捕获2015年的所有数据。我将如何编码?
答案 0 :(得分:1)
弄清楚我需要做什么。
DECLARE @startOfCurrentMonth DATETIME
DECLARE @endOfLastMonth DATETIME
DECLARE @startOfYear DATETIME
SET @startOfCurrentMonth = DATEADD(month, DATEDIFF(month, 0, CURRENT_TIMESTAMP), 0)
SET @endOfLastMonth = DATEADD(ss, -1, DATEADD(month, DATEDIFF(month, 0, CURRENT_TIMESTAMP), 0))
SET @startOfYear = DATEADD(yy, DATEDIFF(yy, 0, @endOfLastMonth), 0)