获取前几个月的数据

时间:2012-07-03 20:29:56

标签: sql sql-server date

过去30天似乎已多次回答这个问题。但似乎不是我需要的。

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

3 个答案:

答案 0 :(得分: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')

答案 1 :(得分: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()替换为日期列

答案 2 :(得分:-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了解详情。