Datediff с нулем в Spotfire

Я пытаюсь рассчитать разницу между двумя датами, но если «конечная дата» имеет нулевое значение, например, во второй и четвертой строках, тогда я хотел бы указать «сегодня».... таблица данных выглядит так такой.

Hire Date             Term Date = "end date"          
01/01/2019            05/01/2020
05/04/2018            
09/17/2019            03/18/2020
10/19/2018

Я думал, что-то вроде этого сработает, но это не так...

If([Term Date]<>NULL THEN DateDiff("year",[Hire Date],[Term Date])
ELSE  DateDiff("year",[Hire Date],Today())
END 

Заранее спасибо!


person dlopez    schedule 07.05.2020    source источник


Ответы (1)


Вы можете использовать SN(), который заменяет Null.

DateDiff('year',[Hire Date] ,  SN([TermDate],Today() )   )

или используйте оператор case вместо IF, так как ваш формат для оператора IF неверен - If(argument, True, False) является правильным форматом, но в некоторых случаях с case легче работать.

Case when [Term Date] is null then DateDiff("year",[Hire Date],Today()) 
else DateDiff("year",[Hire Date],[Term Date]) 
end 
person Tyger Guzman    schedule 07.05.2020
comment
Использовал приведенный вами случай, и это сработало! Спасибо! - person dlopez; 08.05.2020