【问题标题】:How to select the past three months data from a date parameter如何从日期参数中选择过去三个月的数据
【发布时间】:2017-07-12 07:23:58
【问题描述】:

我想显示月份名称以及每个月份的计数。但我只想要用户将选择的日期参数中的过去 3 个月。

这是我目前拥有的:

SELECT
    DATENAME(month, DateDue),
    COUNT(SiteAudit.SiteAuditID) AS SiteAuditID
FROM 
    SiteAudit
WHERE
    DateDue >= Dateadd(month, -3, @Date) 
GROUP BY 
    DATENAME(month, DateDue)

我不确定我哪里出错了,因为现在我已经返回 3 个多月了。

如果有人能帮忙,我将不胜感激。

谢谢

【问题讨论】:

  • 标记您正在使用的 dbms。该查询包括几个产品特定的功能。
  • 您能举一个数据示例,包括当前结果和预期结果吗?

标签: sql sql-server date parameters count


【解决方案1】:

你应该使用DateDue between DateAdd(month, -3, @Date) and @Date
您的原始查询将选择到期日期在@Date之后的数据

完整查询:

SELECT
    DATENAME(month, DateDue),
    COUNT(SiteAudit.SiteAuditID) AS SiteAuditID
FROM 
    SiteAudit
WHERE
    DateDue BETWEEN Dateadd(month, -3, @Date) AND @Date
GROUP BY 
    DATENAME(month, DateDue)

【讨论】:

  • 这太完美了!非常感谢您的快速帮助。
猜你喜欢
  • 2022-01-19
  • 2015-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-01
  • 1970-01-01
  • 2014-08-18
  • 2020-03-17
相关资源
最近更新 更多