如何获取当前年度基于"旧起始日期"和"持续时间"的"起始日期"



例如,我有一个表(Table1),它有From Date、To Date和Duration列。起始日期:2019年5月1日截止日期:空持续时间:12个月

现在,我想根据另一个表(表2)中的date来计算From和to日期。

如果表2日期为"2020年7月1日",则起始日期应为2020年5月1日,截止日期应为"2021年4月30日",因为"2020年1月7日"在表1 的起始日期(2019年5月5日+12个月期限)之后

如果表2日期为"2021年7月1日",则起始日期应为2021年5月1日,截止日期应为"2022年4月30日",因为"2021年1月7日"在表1 的起始日期(2020年5月5日+12个月期限)之后

等等…

那么我如何在SQL Server中实现这一点呢。

似乎您只想使用一点DATEFROMPARTS:

SELECT DATEFROMPARTS(YEAR(@YourDate),5,1) AS FromDate,
DATEFROMPARTS(YEAR(@YourDate)+1,4,30) AS ToDate;

虽然这并不能满足这个要求,但它没有多大意义:

起始日期:2019年5月1日截止日期:空持续时间:12个月

NULL的任何日期都没有";持续时间";由于NULL是未知值,因此它具有未知的持续时间。因此,我假设您希望其他2个示例使用相同的逻辑,并且实际间隔为12个月。