此 SQL 查询没有正确的输出

No proper output for this SQL query

我正在使用此查询来获取 activity.

的开始时间和结束时间之差的结果
SELECT end_time, 
       NVL(end_time, (TO_Date(sysdate, 'dd/mm/yyyy hh24:mi:ss'))),
       (end_time - start_time) * 24 * 60 difference_in_minutes
FROM NCR; 

NCR 是 table 的名称。开始时间和结束时间为日期数据类型。在结束时间为 NULL 的地方,我想将该值作为当前系统日期和时间。除了结束时间为 NULL 的行之外,我正在获取每一行的结果。请帮忙指导

您似乎知道 NVL 函数,但您没有在计算中使用它。如果您希望 NVL 成为计算的一部分,则它需要成为计算的一部分

(nvl(end_time,sysdate) - start_time) * 24 * 60 difference_in_minutes

sysdate 已经是一个日期,因此将它传递给 to_date 没有任何意义。 to_date 不带日期参数,只带字符串。如果将 date 传递给 to_date,Oracle 必须首先使用会话的 NLS_DATE_FORMAT 将日期转换为字符串。然后,to_date 以您指定的任何格式掩码运行。充其量,您只是将其转换回与开始时相同的日期。但是,如果您的会话 NLS_DATE_FORMAT 与您传递给 to_date 的格式掩码不匹配,您可能会得到不同的返回日期或出现错误。