0

我想从 SQL Server 的表中选择所有最近 3 个月的日期。

数据是这样的:

Sunday 20-05-2012
Sunday 27-05-2012
Sunday 10-06-2012
Sunday 24-06-2012
Sunday 08-07-2012
Sunday 22-07-2012
Sunday 12-08-2012
Sunday 19-08-2012
Sunday 09-09-2012
Sunday 16-09-2012
4

2 回答 2

4

将日期列保存为带有星期几的 varchar - 坏主意。您无法编写更快的查询,因为您必须始终转换字段以便在 where 子句中使用它。此外,您的查询不能使用 date_column 的索引,并且每个查询都将使用扫描索引。

使用 datetime 列,查询应该是:

select date_column
  from table_name
 where date_column between dateadd(m, -3, getdate()) and getdate()
于 2012-09-28T11:34:25.617 回答
1

尝试使用此查询:

select date_column from table_name
where datepart(m,date_column) > datepart(m,getdate())-3 and datepart(yy,date_column) >= datepart(yy,getdate())
于 2012-09-28T11:17:17.353 回答