如何使用天数或月数或年数处理日期的空值

时间:2019-06-13 09:44:10

标签: oracle

我正在创建一个报告,我需要显示该报告的到期日,但是当到期日为空时,我必须显示诸如天,月或年之类的数值

 Nvl(To_Char(b.Charter_Start_Date, 'DD/MM/RR') || '-' ||
       To_Char(b.Charter_End_Date, 'DD/MM/RR',Charter_Period_min || ' ' 
       ||Charter_Period_Max ) "EXPIRY DATE",

当开始日期和结束日期为null时表示 我必须显示30天或4个月或2年

1 个答案:

答案 0 :(得分:0)

我想我知道您想要做什么,但是您的NVL()在这种情况下将无法工作,因为第一个参数是一个包含'-'的字符串,该字符串永远不会为null。尝试这样的事情。

CASE when b.Charter_End_Date is not null 
     then To_Char(b.Charter_Start_Date, 'DD/MM/RR') || '-' || To_Char(b.Charter_End_Date, 'DD/MM/RR')
     else Charter_Period_min|| ' ' ||Charter_Period_Max
   END "EXPIRY DATE",