我正在研究SQL-server 2008 r2中的存储过程。已经完成了SELECT和所有事情,但在将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,但是我一直遇到语法错误。
答案 0 :(得分:2)
试试这个 -
--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())
答案 1 :(得分:1)
所以对于那些遇到同样麻烦的人来说,这就是答案。
AND DATEPART(YY,COLUMNDATE) = DATEPART(YY,DATEADD(MM, -1, GETDATE()))