在tsql中将DateDiff与GetDate()一起使用

在tsql中将DateDiff与GetDate()一起使用,tsql,casting,datediff,getdate,Tsql,Casting,Datediff,Getdate,我试图在DateDiff中使用GetDate,同时使用case语句。如果字段1为空,我希望使用当前日期。这是我正在使用的代码: DateDiff(DAY, (Select Min(case when (demand_labor.arrive_dt is null) then GETDATE() else (demand_labor.arrive_dt) end) From demand Inner Join demand_labor On dema

我试图在DateDiff中使用GetDate,同时使用case语句。如果字段1为空,我希望使用当前日期。这是我正在使用的代码:

DateDiff(DAY, (Select Min(case when (demand_labor.arrive_dt is null)
      then GETDATE()
      else (demand_labor.arrive_dt)
      end)
      From demand Inner Join demand_labor On demand.demand_id =
      demand_labor.demand_id
      Where (order_line.order_id = demand.order_id)),
      c_service_call_env.resolve_date) As A2R2, 
出于这样或那样的原因,当它为空时,它没有设置日期,字段保持为空。任何帮助都将不胜感激

ISNULL ( demand_labor.arrive_dt , GETDATE() )

DateDiff应该有3个组件
不知道你在那里想做什么

DateDiff(DAY, ISNULL ( demand_labor.arrive_dt , GETDATE() ), open_dt)

我正试着和。到达并打开。那个 尽管如此,如果.arrival\u dt为空,我想检查 当前日期和打开日期之间的日期差。也可能有 不止一个。这就是我选择最小值的原因

案例陈述应该有效

case when .arrive_dt is null then datediff(day, getdate(), Open_dt )
 else datediff(day, min(.arrive_dt), open_dt) end 
group by *as needed*
根据需要在DateDiff中切换顺序


我正在尝试与.到达并打开\u dt进行dateDiff。尽管如此,如果.arrival\u dt为空,我想检查当前日期和打开日期之间的日期差。也可能不止一个。到达,这就是我选择最小值的原因。然后打开,需要在其中的某个位置,对于一个最小值,您需要一个分组。即使你不知道怎么做,至少描述一下你想做什么。你不能在case语句中混合使用聚合(min)和非聚合。即使这样也会失败datediff(day,min(.arrival_dt),open_dt)@Blam你尝试过吗?试图让sqlfiddle帮助@Blam走出去在发布的问题和答案中都没有分组依据。由于问题不清楚,我不确定它是否回答了实际问题。我很确定它回答了他的问题,现在如果Op想要更具体的话,我可以更具体的回答。当语句本身起作用时,情况会发生变化吗?看起来你比大多数人更有常识,但只是想在这种情况下挑刺。忘掉你自己,像你这样的反应会把人推开。要么帮忙,要么走开@责备