-3

我正在使用PostgreSQL 8.4.4age我正在使用 PostgreSQL 的函数计算两个 Unix 时间戳之间的时间差。我得到了预期的输出。我唯一想要的是将时差转换为大写。例如,

select coalesce(nullif(age(to_timestamp(1389078075), to_timestamp(1380703432))::text,''), UPPER('Missing')) FROM transactions_transactions WHERE id = 947

该查询给出的结果为

3 周一 4 天 22:17:23

但我希望这个输出像

3 个月 4 天 22:17:23

注意:我将其用于动态报告生成目的。所以从数据库中获取后我无法将其转换为大写。我希望它在来自数据库本身时(即在查询中)为大写。

4

1 回答 1

2

upper()应该使用PostgreSQL 的功能

SELECT upper(age(to_timestamp(1389078075), to_timestamp(1380703432))::text) 
FROM transactions_transactions WHERE id = 947

根据OP的评论和编辑

select upper(coalesce(nullif(age(to_timestamp(1389078075), to_timestamp(1380703432))::text,''), UPPER('Missing'))) 
于 2015-10-17T05:37:16.777 回答