显示今天的日期和之前的6个月之间的记录

时间:2012-04-10 01:23:42

标签: asp.net sql sql-server sql-server-2008 tsql

我的SQL SELECT语句出错了。基本上我想要返回交易日期在今天的日期和今天的日期减去6个月之间的所有记录。

到目前为止,我所尝试的是:

SELECT * FROM loan_ledger
WHERE trandate <= DATEADD(month,-6,GETDATE())

但它没有得到确切的结果。结果是返回日期,如2009年或2007年,但我想要的是,如果今天的日期是2012年4月9日,结果必须是从该日期(2012年4月9日)到2012年4月9日减去6个月(10月)的交易9,2011)。仅

结果是显示过去的交易并且仍然显示我不想要的2009年,2001年的记录!

有人可以帮助我吗?

4 个答案:

答案 0 :(得分:2)

另一个答案很接近,但如果您使用BETWEEN,如果您想今天加入,则需要在日期中添加一个

select * from loan_ledger
where trandate BETWEEN dateadd(month,-6,getdate()) AND getdate()+1

在getdate之间使用时,除非你在1处,否则今天不会包含它。

答案 1 :(得分:1)

只需改变你的子句

select * from loan_ledger
where trandate >= dateadd(month,-6,getdate()) AND trandate <= getdate()

问候。

答案 2 :(得分:1)

你所说的所有声明都是“当日期早于6mo之前获取信息”而不是“从6mo前到今天抓住东西”

尝试类似

的内容
select * from loan_ledger
where trandate BETWEEN dateadd(month,-6,getdate()) AND getdate()

答案 3 :(得分:0)

你要求trandate在&lt; = 6个月前的行。当然,2007年的每个交易都符合这一标准。

如果您今天和6个月前只想要提交between,请尝试

trandate between dateadd(month, -6, getdate()) and getdate()