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

时间:2015-10-17 05:29:53

标签: postgresql datetime string-function

我正在使用 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天22:17:23

但我希望这个输出像

  

3个月4天22:17:23

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

1 个答案:

答案 0 :(得分:2)

应该使用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')))