Sql 使用dateadd返回工作日
我使用下面的公式来计算下一个日期,但这可能返回一个非工作日Sql 使用dateadd返回工作日,sql,dateadd,Sql,Dateadd,我使用下面的公式来计算下一个日期,但这可能返回一个非工作日 dateadd(day, 365, nullif(last_service, '01/01/1900')) as [next_service] 例如,最后一次保养是2014年3月7日那么下一次保养将是2015年3月7日,也就是星期六 如何避免这样只返回工作日 感谢您在这方面的帮助和指导。我建议建立一个日历表。由于不同的假期和其他政策,下一个工作日对每个人来说都不一样,加入日历表既快捷又干净。有许多资源可帮助您创建日历表,以下是一个:
dateadd(day, 365, nullif(last_service, '01/01/1900')) as [next_service]
例如,最后一次保养
是2014年3月7日
那么下一次保养
将是2015年3月7日
,也就是星期六
如何避免这样只返回工作日
感谢您在这方面的帮助和指导。我建议建立一个日历表。由于不同的假期和其他政策,下一个工作日对每个人来说都不一样,加入日历表既快捷又干净。有许多资源可帮助您创建日历表,以下是一个: 使用情况可能有所不同:
SELECT a.*,b.NextBusinessDay AS next_service
FROM YourTable a
JOIN tlkp_Calendar b
ON DATEADD(year,1,a.last_service) = b.CalendarDate
或者,如果您将额外的一年烘焙到日历表中:
SELECT a.*,b.Next_Service
FROM YourTable a
JOIN tlkp_Calendar b
ON a.last_service = b.CalendarDate
我建议做一个日历表。由于不同的假期和其他政策,下一个工作日对每个人来说都不一样,加入日历表既快捷又干净。有许多资源可帮助您创建日历表,以下是一个: 使用情况可能有所不同:
SELECT a.*,b.NextBusinessDay AS next_service
FROM YourTable a
JOIN tlkp_Calendar b
ON DATEADD(year,1,a.last_service) = b.CalendarDate
或者,如果您将额外的一年烘焙到日历表中:
SELECT a.*,b.Next_Service
FROM YourTable a
JOIN tlkp_Calendar b
ON a.last_service = b.CalendarDate
因此,在该示例中,结果应该是什么。首先创建一个包含环境工作日的日历表。我希望它返回下一个工作日。在该示例中,结果应该是什么。首先创建一个包含环境工作日的日历表。我仍然希望它返回下一个工作日使用日历时返回相同的日期。@user3452212您需要在日历表中生成下一个工作日或下一个服务日期,才能执行此操作,但在任一查询中,您选择的字段应具有不同的日期。这在使用日历时仍然返回相同的日期。@user3452212您需要将下一个工作日或下一个服务日期生成到日历表中,以使其生效,但在任一查询中,您选择的字段应具有不同的日期。