在sql中使用DateDiff和GetDate()

时间:2014-09-30 12:25:27

标签: tsql casting datediff getdate

我正在尝试在DateDiff中使用GetDate以及case语句。如果字段1为null,我想使用当前日期。这是我正在使用的代码:

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, 

由于某种原因,虽然它为null,但它没有设置日期,该字段保持为空。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

ISNULL ( demand_labor.arrive_dt , GETDATE() )

ISNULL

DateDiff应该有3个组件
不确定你在那里做什么

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

答案 1 :(得分:-1)

  

我正在尝试使用.arrive_dt和open_dt进行dateDiff。那   虽然如果.arrive_dt为null,我想检查一下   dateDiff当前日期和open_dt之间。也有可能   超过一个.arrive_dt这就是我选择min

的原因

案例陈述应该有效

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*

根据需要在日期内切换订单

http://sqlfiddle.com/#!3/9b6c5/1/0