Sql 需要在24日到23日范围内的月份

Sql 需要在24日到23日范围内的月份,sql,coldfusion,Sql,Coldfusion,我希望在我的代码中,当从数据库读取数据时,当前月份应该在上个月的24日到本月的23日之间。换句话说,日历月在24到23之间 我正在使用以下代码 月份和年份计算 <cfset curmonth=Month(now())> <cfif #curmonth# eq 1> <cfset prevmonth=12> <cfelse> <cfset prevmonth=#curmonth# - 1> </cfif> <cf

我希望在我的代码中,当从数据库读取数据时,当前月份应该在上个月的24日到本月的23日之间。换句话说,日历月在24到23之间

我正在使用以下代码

月份和年份计算

<cfset curmonth=Month(now())>
<cfif #curmonth# eq 1>
  <cfset prevmonth=12>
<cfelse>
  <cfset prevmonth=#curmonth# - 1>
</cfif>
<cfset curyear=Year(now())>
<cfset prevyear=#curyear# - 1>
我应该如何修改查询以获得24到23之间的月份?

可能是这样的:

SELECT
  MONTHNAME(GroupingDate) AS sMonth,
  YEAR(GroupingDate) AS iYear,
  SUM(amount) AS TotalSale,
  FacilityId
FROM (
  SELECT
    FacilityId,
    amount,
    DATE_ADD(
      approveddate1,
      INTERVAL IF(DAY(approveddate1) < 24, 0, 1) MONTH
    ) AS GroupingDate
  FROM orders
) AS o
GROUP BY
  YEAR(GroupingDate),
  MONTH(GroupingDate),
  MONTHNAME(GroupingDate),
  FacilityId
也许是这样:

SELECT
  MONTHNAME(GroupingDate) AS sMonth,
  YEAR(GroupingDate) AS iYear,
  SUM(amount) AS TotalSale,
  FacilityId
FROM (
  SELECT
    FacilityId,
    amount,
    DATE_ADD(
      approveddate1,
      INTERVAL IF(DAY(approveddate1) < 24, 0, 1) MONTH
    ) AS GroupingDate
  FROM orders
) AS o
GROUP BY
  YEAR(GroupingDate),
  MONTH(GroupingDate),
  MONTHNAME(GroupingDate),
  FacilityId

对不起-什么?读了几遍,我还是不明白你的意思。你是说你想要本月24日到23日的数据吗?11月25日会发生什么?2月呢。。闰年…这不是一个真正的冷融合问题,是吗?您只是在寻找SQL方面的帮助。另外,您的CF代码也有很多问题,比如不恰当地使用和不使用cfqueryparam。对不起-什么?读了几遍,我还是不明白你的意思。你是说你想要本月24日到23日的数据吗?11月25日会发生什么?2月呢。。闰年…这不是一个真正的冷融合问题,是吗?您只是在寻找SQL方面的帮助。此外,您的CF代码还存在许多问题,例如不恰当地使用和不使用cfqueryparam。
SELECT
  MONTHNAME(GroupingDate) AS sMonth,
  YEAR(GroupingDate) AS iYear,
  SUM(amount) AS TotalSale,
  FacilityId
FROM (
  SELECT
    FacilityId,
    amount,
    DATE_ADD(
      approveddate1,
      INTERVAL IF(DAY(approveddate1) < 24, 0, 1) MONTH
    ) AS GroupingDate
  FROM orders
) AS o
GROUP BY
  YEAR(GroupingDate),
  MONTH(GroupingDate),
  MONTHNAME(GroupingDate),
  FacilityId