-1

在过去的 30 天里,这似乎已被多次回答。但似乎不是我需要的。

例如,如果今天是 2012 年 7 月 10 日。我希望提取 6 月份的所有数据。我需要在每个月初的几天后运行此查询

4

3 回答 3

3

当然有更好的方法可以做到这一点,但一种方法是:

DECLARE @Date DATETIME
SET @Date = '20120710'

SELECT *
FROM YourTable
WHERE YourDateColumn >= CONVERT(VARCHAR(6),DATEADD(MONTH,-1,@Date),112)+'01' 
AND YourDateColumn < CONVERT(VARCHAR(6),@Date,112)+'01')
于 2012-07-03T20:42:35.190 回答
0

-- 上个月的第一天

select DateAdd(Month, DateDiff(Month, 0, GetDate())-1,0)

-- 上个月的最后一天

Select DateAdd(day,-1,DateAdd(Month,1,DateAdd(Month, 
                                            DateDiff(Month, 0,GETDATE())-1,0)))

请用您的日期列替换 GETDATE()

于 2012-07-09T07:05:12.720 回答
-1

啊,在那种情况下,你需要这样的东西:

SELECT *
FROM
  reporting_table_name_goes_here
WHERE
  DATEPART(month, YourDateColumn) = DATEPART(month, DATEADD(month, -1, getdate()))
AND DATEPART(year, YourDateColumn) = DATEPART(year, DATEADD(month, -1, getdate()))

查看MSDN了解详细信息。

于 2012-07-03T20:41:46.693 回答