此查询目前正在撤回6个月的数据,因此,如果我今天运行它,我会从2016年3月1日到2016年9月6日获取数据。我想要的是数据将于2016年8月31日停止。
接下来的一个月从2016年4月1日到2016年9月30日开始,依此类推。
非常感谢
select i.Date
from table as i
where i.Date >= Dateadd(Month, Datediff(Month, 0, DATEADD(m, -6, current_timestamp)), 0)
order by i.Date desc
答案 0 :(得分:3)
尝试:
select i.Date
from table as i
where i.Date between
Dateadd(Month, Datediff(Month, 0, DATEADD(m, -6, current_timestamp)), 0)
AND DATEADD(MONTH, DATEDIFF(MONTH, -1, GETDATE())-1, 0)
order by i.Date desc
答案 1 :(得分:0)
假设[Date]是日期时间。 并且小时/分钟/秒不重要。
select i.[Date]
from table as i
where convert(date,i.[Date]) between
dateadd(m, -6, dateadd(d, -datepart(d,GetDate())+1, convert(date,GetDate()))) AND
dateadd(d, -datepart(d,GetDate()), convert(date,GetDate()))
order by i.[Date] desc