Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.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
向日期添加7天的T-SQL代码_Sql_Sql Server_Tsql - Fatal编程技术网

向日期添加7天的T-SQL代码

向日期添加7天的T-SQL代码,sql,sql-server,tsql,Sql,Sql Server,Tsql,如果我们错过了发货日期,下面的声明会给发货日期增加7天。例如,由于某种原因,本应在2014年7月24日发货的东西没有发货。以下查询将发货日期增加7天(导致07/31/2014) 唯一的问题是,如果我们错过了装运日期,“测试船”栏只在星期日将装运日期增加7天。我的意思是,对于计划发货日期为2014年7月24日,并且我们错过了当天发货的作业,下面的“测试发货”栏仅在周日将下一个计划发货日期更新为2014年7月31日 例如,假设jobJ012345没有在2014年7月24日发货。然后,“测试船”栏将更

如果我们错过了发货日期,下面的声明会给发货日期增加7天。例如,由于某种原因,本应在2014年7月24日<代码>发货的东西没有发货。以下查询将发货日期增加7天(导致
07/31/2014

唯一的问题是,如果我们错过了装运日期,“测试船”栏只在星期日将装运日期增加7天。我的意思是,对于计划发货日期为
2014年7月24日
,并且我们错过了当天发货的作业,下面的“测试发货”栏仅在周日将下一个计划发货日期更新为
2014年7月31日

例如,假设job
J012345
没有在
2014年7月24日
发货。然后,“测试船”栏将更新日期至明天,即2014年7月27日(星期日),而不是2014年7月25日(星期五)。我有什么遗漏吗?如何让“测试船”在周五而不是周日更新日期

'Test Ship' =
CASE
 WHEN j.JobStatus <> 'S'
 AND CAST(x.ExpectedDate AS date)
    < DATEADD(wk, DATEDIFF(wk, 3, CAST(GETDATE() AS date)), 3)
 THEN DATEADD(DAY, 4, CAST(DATEADD(week, DATEDIFF(week, 0, GETDATE()), -1) AS date)) 

 WHEN j.JobStatus ='S'
 THEN CAST(j.LastShippedDate AS date)

 ELSE CAST(x.ExpectedDate AS date)
END
“试验船”=
案例
当j.JobStatus'S'
和铸造(x.预期日期为日期)
请参阅发布在的解决方案,该解决方案可概括为:

  • 通过分离
    案例
    条件,使代码更易于阅读
  • 用确定性解决方案替换非确定性函数(
    getdate()

  • 请提供样本数据和预期结果。你正确地指出剽窃是不恰当的,但用你自己的话适当地引用和总结是有中间立场的。您还可以将给定链接上的知识应用于问题的细节,并给予适当的评分。(我不能代表投票人说话,但在我编辑之前,你的大部分文字都是抱怨网站而不是回答)。@Flexo:上面的问题已经在多个论坛上发布,我引用的解决方案正是我认为需要的。应用知识就意味着复制它。我对该网站的抱怨是在否决票之后,而不是相反。似乎这个网站不是我参与的好地方。。。