我已经在几个不同的论坛上查看过,我无法找到我需要的东西,他们都将它列在SQL View中,这不是我想要的。我想在查询设计中这样做,因为它对我来说更容易。
我只想进行查询以显示我维护的数据库的某些参数。这些参数与上个月的数据相同。
我以前能够成功地查询显示过去一年的所有信息,但无法弄清楚如何显示过去几个月。
过去的一年标准:
>DateAdd("yyyy",-1,Date())
既然有效,我尝试这样做,但这对我不起作用:
>DateAdd("mmmm",-1,Date())
我确定它很简单,我只是没有在这里看到。欢迎任何帮助或建议。
参考Fionnuala提供的链接,我提出了
>DateAdd("m',-30,Date())
问题在于,它会查询今天过去30天内的所有结果。我希望只显示十月份的数据!虽然这可以轻松完成。我不希望每个月手动进入此查询并更改某些参数。我希望它是自动的,所以或下个月12月我点击查询,它显示11月的所有30天的数据。并且没有手动回程和更改任何标准的过程。
答案 0 :(得分:1)
在查询设计器中,您可以使用Criteria:
这样的
>=DateSerial(Year(Date()),Month(Date())-1,1) And <DateSerial(Year(Date()),Month(Date()),1)
相应的SQL语句是
SELECT Donations.*
FROM Donations
WHERE (((Donations.DonationDate)>=DateSerial(Year(Date()),Month(Date())-1,1)
And (Donations.DonationDate)<DateSerial(Year(Date()),Month(Date()),1)));
如果它是在2014年11月18日运行,那么它实际上是
SELECT Donations.*
FROM Donations
WHERE (((Donations.DonationDate)>=DateSerial(2014,10,1)
And (Donations.DonationDate)<DateSerial(2014,11,1)));
注意:
此查询应为sargable并利用日期字段上的索引(如果存在)。
如果有人担心&#34;月环绕&#34;,DateSerial()
功能会为我们处理。如果查询是在2015年1月运行的,那么第一个WHERE条件确实是... >=DateSerial(2015,0,1)
但是没关系,因为它返回2014-12-01
。