根据上个月获得年度开始

时间:2015-03-06 18:18:02

标签: sql sql-server-2005

我在本月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年的所有数据。我将如何编码?

1 个答案:

答案 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)