Access SQL查询-从每月的特定日期选择日期范围

Access SQL查询-从每月的特定日期选择日期范围,sql,ms-access,Sql,Ms Access,我已经为这个问题绞尽脑汁有一段时间了,但我想做一个查询,根据我们所在的月份,选择从当前/上个月24日到下一个/当前月24日的值-这基本上是从一个工资单到下一个工资单。对SQL查询有什么建议吗 例如,如果当前日期是3月20日,那么我需要从2月24日到3月24日的所有数据,但是如果日期超过本月24日,比如3月30日,那么我需要从3月24日到4月24日的数据——如果这有意义的话 谢谢, Phill只需减去23天,然后提取年份和月份: select year(dateadd("d", -23, date

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


例如,如果当前日期是3月20日,那么我需要从2月24日到3月24日的所有数据,但是如果日期超过本月24日,比如3月30日,那么我需要从3月24日到4月24日的数据——如果这有意义的话

谢谢,
Phill

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

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

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

select year(dateadd("d", -23, datecol)) as year,
       month(dateadd("d", -23, datecol)) as month
用这句话:

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)
用这句话:

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)
对于更精简的方法,请使用DateAdd和DateDiff:

选择*
从你的桌子上
其中DateDiff('m',DateAdd('d',-23,[YourDateField]),DateAdd('d',-23,Date())=0
对于更精简的方法,请使用DateAdd和DateDiff:

选择*
从你的桌子上
其中DateDiff('m',DateAdd('d',-23,[YourDateField]),DateAdd('d',-23,Date())=0

你所说的取决于我们所处的月份是什么意思?例如,如果当前日期是3月20日,那么我需要从2月24日到3月24日的所有数据,但是如果日期超过了本月24日,比如3月30日,那么我需要3月24日到4月24日的数据-如果这有意义的话。你说的取决于我们所在的月份是什么意思?例如,如果当前日期是3月20日,那么我需要2月24日到3月24日的所有数据,但是如果日期超过了本月24日,比如说3月30日,那么我想要3月24日到4月24日的数据——如果这有意义的话。谢谢——那太完美了谢谢——那太完美了