SQL Server将datepart与getdate和dateadd结合起来

SQL Server将datepart与getdate和dateadd结合起来,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我正在用SQLServer2008R2制作一个存储过程。已经完成了选择和所有的事情,但是在将我的datepart与Dateadd和getdate结合起来时遇到了一些问题。问题是我想在查询中这样显示它 2013-06 2013-07 2013-08 所以我尝试使用这段代码,但我一直得到无效的语法 and Datepart(yy, Column) = 2013 但是我不希望它被硬编码,因为使用这个系统的人应该每个月都能打印出来。这就是为什么我在想getdate-1 DATEPART(MM,DATE

我正在用SQLServer2008R2制作一个存储过程。已经完成了选择和所有的事情,但是在将我的datepart与Dateadd和getdate结合起来时遇到了一些问题。问题是我想在查询中这样显示它

2013-06 2013-07 2013-08

所以我尝试使用这段代码,但我一直得到无效的语法

and Datepart(yy, Column) = 2013
但是我不希望它被硬编码,因为使用这个系统的人应该每个月都能打印出来。这就是为什么我在想getdate-1

DATEPART(MM,DATEADD(MM,-1 GETDATE())
我想合并硬代码并将其更改为较低的代码。SELECT代码目前看起来是这样的

INSERT INTO #EXCEL(COL1,COL2,COL3)
SELECT SUM (AVERAGE) / COUNT DISTINCT(TABLE.COLUMN)
FROM TABLE
INNER JOIN TABLE1 ON TABLE2.COLUMN = BLA BLA 
WHERE SOMETHING = X
AND DATEPART(YY,COLUMNDATE) = 2013
AND DATEPART(MM,COLUMNDATE) = 8
我想结合使用我的getdate,但我一直遇到语法错误

试试这个-

--SELECT SUM(AVERAGE) / COUNT(DISTINCT t.[COLUMN])
--FROM dbo.[TABLE] t
--JOIN dbo.TABLE1 t2 ON t2.[COLUMN] = 'BLA BLA...' 
--WHERE SOMETHING = X
    AND YEAR(COLUMNDATE) = YEAR(GETDATE())
    AND MONTH(COLUMNDATE) = MONTH(GETDATE())
试试这个-

--SELECT SUM(AVERAGE) / COUNT(DISTINCT t.[COLUMN])
--FROM dbo.[TABLE] t
--JOIN dbo.TABLE1 t2 ON t2.[COLUMN] = 'BLA BLA...' 
--WHERE SOMETHING = X
    AND YEAR(COLUMNDATE) = YEAR(GETDATE())
    AND MONTH(COLUMNDATE) = MONTH(GETDATE())

这就是你们这些有同样问题的人的答案

AND DATEPART(YY,COLUMNDATE) = DATEPART(YY,DATEADD(MM, -1, GETDATE()))

这就是你们这些有同样问题的人的答案

AND DATEPART(YY,COLUMNDATE) = DATEPART(YY,DATEADD(MM, -1, GETDATE()))

你的错误是什么?我假设你在
DATEPART(MM,DATEADD(MM,-1 GETDATE())
中缺少一个逗号,就在-1之后?你的错误是什么?我假设你在
DATEPART(MM,DATEADD(MM,-1 GETDATE())
中缺少一个逗号,就在-1之后?我在上面发布了我的答案,问题是我希望它在统计中倒数。谢谢你的答案:)把我的答案贴在上面,问题是我想让它在统计中倒数。谢谢你的回答:)