尝试跟踪本月与上个月的进度

Trying to track progress this month vs Previous

这听起来很简单,但并不像我想象的那样有效。 我正在尝试跟踪本月至今的进度 这是我的 MTD

代码

Startdate>=DATEADD(MONTH, DATEDIFF(MONTH, 0, Convert(date, getdate())), 0)

非常简单。

对于上个月开始,我使用: Startdate>= DATEADD(month, DATEDIFF(month, -1, getdate()) , 0) 作为开始日期

对于当前标记,我使用了这个: Enddate>=DATEADD(month, DATEDIFF(month, 0, getdate()-30), 0)+datepart (day,getdate())

理想情况下,我想知道今天是否是 5 号。 window 中发生了多少销售。 然后我也想知道我们上个月同期的表现如何。

我的问题是我发现在有 31 天的月份和有 29 天的月份之后我遇到了问题。

有没有一个函数可以给我一个月前的相同日期?

dateadd(month, -1, getdate()) 

dateadd(month, -1, '20150330') returns '2015-02-28'

如果上个月没有确切的日期returns一个月的最后一天。