我需要找到前一个时间段的日期——例如,如果给定的月份是 Jan-13 到 Mar-13,我需要能够计算出上一个时间段是 Oct-12 到 Dec-12。或者如果日期是 7 月 12 日到 6 月 13 日,我需要得出 7 月 11 日到 6 月 12 日。所以基本上对于 x 个月的时间段,我需要返回另一个 x 个月的时间段来完成该月在指定时间段之前。
日期将始终是每月的第一天,因此 2012 年 6 月 1 日或 2012 年 6 月 1 日或 2012 年 1 月 6 日,具体取决于您在世界的哪个地方。
此 SQL 查询有效,但稍后当我将其合并到 Left Join 查询中时似乎会导致问题(请参阅现有问题:Access 2007 - Left Join to a query returns #Error 而不是 Null)
SELECT DATEADD("m",
1-(1+MONTH(QueryDates.EndDate)-MONTH(QueryDates.StartDate)+
(12*(YEAR(QueryDates.EndDate)-YEAR(QueryDates.StartDate)))),
DATEADD("m",-1,QueryDates.StartDate)) AS StartDatePrevious,
DATEADD("m",-1,QueryDates.StartDate) AS EndDatePrevious
FROM QueryDates;
从我坐的地方看起来有点疯狂,所以有没有更简单的方法来完成这项任务?或者 SQL 中是否有任何错误可能会在以后混淆 Access?