日期:2014-05-18  浏览次数:20535 次

如何搜索出本月和前一个月的条件
数据库A,有一列date,数据类型是date

如下:
date
2012-1-3
2012-1-4
2012-2-4
2012-3-5

我想搜索出本月和上一个月的数据,条件应该如何写。
比如今天是2012-3-10号,那就搜索出date是2月和3月的数据来。

------解决方案--------------------
SQL code
SELECT 
*
FROM
 TB
WHERE
 [DATE] 
BETWEEN 
 CONVERT(datetime,CONVERT(char(8),DATEADD(MM,-1,[DATE]),120)+'1')
AND
 DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,[DATE]),120)+'1')

------解决方案--------------------
楼上牛B
------解决方案--------------------
SQL code

select * from tbl 
where year(date)=year(getdate()) 
and month(date) in (month(getdate())-1,month(getdate()))

------解决方案--------------------
SQL code
select * from A.dbo.TB where datediff(mm,getdate(),date) in (0,-1) and datepart(yy,date) = datepart(yy,getdate())

------解决方案--------------------
SQL code

select * from test where date between (select cast((convert(varchar(20),dateadd(m,-1,getdate()),102))as datetime)) and getdate()