Postgresql 类型“interval”的输入语法无效;“失踪”;
我正在使用PostgreSQL 8.4.4。我的问题是,我用两个bigint值计算时间差,以天、小时、分钟为单位。我将这些值转换为时间戳,然后计算差值。我得到了表中存在的值的差值。但对于返回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
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的快速响应,解决方案正在按预期工作。