Postgresql 类型“interval”的输入语法无效;“失踪”;

Postgresql 类型“interval”的输入语法无效;“失踪”;,postgresql,select,timestamp,bigint,Postgresql,Select,Timestamp,Bigint,我正在使用PostgreSQL 8.4.4。我的问题是,我用两个bigint值计算时间差,以天、小时、分钟为单位。我将这些值转换为时间戳,然后计算差值。我得到了表中存在的值的差值。但对于返回NULL或表中不存在的那个些,我希望结果为“缺失”。当我把这个添加到查询中时,我得到了上面的错误。以下是我正在使用的查询: select case when exists (SELECT age(to_timestamp(incepted_date), to_timestamp(invoice_pay

我正在使用PostgreSQL 8.4.4。我的问题是,我用两个bigint值计算时间差,以天、小时、分钟为单位。我将这些值转换为时间戳,然后计算差值。我得到了表中存在的值的差值。但对于返回
NULL
或表中不存在的那个些,我希望结果为“缺失”。当我把这个添加到查询中时,我得到了上面的错误。以下是我正在使用的查询:

select 
   case when exists (SELECT age(to_timestamp(incepted_date), to_timestamp(invoice_pay_date)) 
                    from transactions_transactions where id = 4275) 
   then (SELECT age(to_timestamp(incepted_date), to_timestamp(invoice_pay_date)) 
                    from transactions_transactions where id = 4275)   
   else 'missing'
end

您可以使用and函数的组合来实现结果,而不是像下面那样使用
CASE-WHEN

SELECT coalesce(nullif(age(to_timestamp(incepted_date), to_timestamp(invoice_pay_date))::TEXT, ''), 'Missing')
FROM transactions_transactions
WHERE id = 4275

尝试从id=4275的交易中选择coalesce(nullif(年龄)(到时间戳(接收日期)、到时间戳(发票支付日期))::text、“)、”Missing“)或这个-非常感谢@winged panther的快速响应,解决方案正在按预期工作。