在过去的 30 天里,这似乎已被多次回答。但似乎不是我需要的。
例如,如果今天是 2012 年 7 月 10 日。我希望提取 6 月份的所有数据。我需要在每个月初的几天后运行此查询
在过去的 30 天里,这似乎已被多次回答。但似乎不是我需要的。
例如,如果今天是 2012 年 7 月 10 日。我希望提取 6 月份的所有数据。我需要在每个月初的几天后运行此查询
当然有更好的方法可以做到这一点,但一种方法是:
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')
-- 上个月的第一天
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()
啊,在那种情况下,你需要这样的东西:
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了解详细信息。