Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用dateadd返回工作日_Sql_Dateadd - Fatal编程技术网

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您需要将下一个工作日或下一个服务日期生成到日历表中,以使其生效,但在任一查询中,您选择的字段应具有不同的日期。