Access SQL查询-选择一个月中特定日期的日期范围



我已经为此绞尽脑汁了一段时间,但我想进行一个查询,根据我们所在的月份选择从当前/上个月24日到下个/当前月24日的值-这基本上是从一个工资单到下一个。对SQL查询有什么建议吗?

因此,例如,如果当前日期是3月20日,那么我想要2月24日至3月24日的所有数据,但如果日期超过本月24日,比如3月30日,那么如果这有意义的话,我想要3月24至4月24日。

谢谢,Phill

使用以下表达式:

iif(
day(date()) >= 24,
dateserial(year(date()), month(date()), 24),
dateserial(year(dateadd('m', -1, date())), month(dateadd('m', -1, date())), 24)
)

你可以得到你的病情的开始日期(虽然我不确定>=符号,也许它应该只是>?(,所以这样使用它:

select t.col1, t.col2, ... 
from (
select *, 
iif(
day(date()) >= 24,
dateserial(year(date()), month(date()), 24),
dateserial(year(dateadd('m', -1, date())), month(dateadd('m', -1, date())), 24)
) as start_date
from tablename
) as t
where t.date_column between t.start_date and dateadd('m', 1, t.start_date)

只需减去23天,提取年份和月份:

select year(dateadd("d", -23, datecol)) as year,
month(dateadd("d", -23, datecol)) as month

对于更精简的方法,请使用DateAddDateDiff

Select *
From YourTable
Where DateDiff('m', DateAdd('d', -23, [YourDateField]), DateAdd('d', -23, Date())) = 0

最新更新