查询 return 下个月的所有值

Query to return all values from next month

我在 table 中有一个订阅数据集,看起来像这样:

Table:
用户 ID
Subscription_type
Subscription_end_date

我正在尝试在 SSRS 中构建一个报告,其中显示将在下个月某处到期的所有订阅的列表。该报告在每个月的第一天发送,需要显示所有将在下个月到期的行。

例如:01-07-2021 发送的报告需要显示所有将在 8 月到期的订阅(因此所有 subscription_end_date 的值从 01-08-2021 到 31-08 -2021).

起初我认为使用像下面这样的 where 语句就是答案:

WHERE [Subscription_end_date] = DATEADD(MONTH, 1, GETDATE()) 

但不知为何它没有 return 任何值。我想知道我的解决方案是否朝着正确的方向发展,DATEADD 与 GETDATE 相结合是否可以解决问题,或者我必须在整个其他语句中搜索它。

您只需检查您的目标日期是否在所需范围内, 尝试

where Subscription_end_date >= dateadd(month,1,convert(date,getdate())) 
  and Subscription_end_date <  dateadd(month,2,convert(date,getdate()))

当然假设您是 运行 每个月 1 日的报告。

可以使用以下方法找到下个月的第一天:

dateadd(day, 1, eomonth(getdate()))

因此,您可以在 where 子句中使用它:

where Subscription_end_date >= dateadd(day, 1, eomonth(getdate())) and
      dateadd(day, 1, eomonth(getdate())) < dateadd(month, 1, dateadd(day, 1, eomonth(getdate())))