将 PostgreSQL 年龄函数输出转换为大写

Convert PostgreSQL age function output to upper case

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

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

此查询给出的结果为

3 mons 4 days 22:17:23

但我希望这个输出像

3 MONTHS 4 DAYS 22:17:23

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

PostgreSQL 的 upper() 函数应该使用

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')))