PostgreSQL:如何优雅地使用单个 space 分隔 return 罗马日期?

PostgreSQL: How to return roman date with single space delimitation elegantly?

如果我使用标准方式接收罗马数字月份的日期...

SELECT to_char(DATE '2000 12 05', 'DD RM YYYY') 

PostgreSQL returns 多间隔(1 到 4)定界日期:

"05 XII  2000"
"02 VIII 1976"
"02 V    1976"

我注意到 RM 总是 returns 5 个字符代表月份的所有可能性(从小:I 到大:VIII

这不是我所期望的。我想要返回单行距分隔日期。我已经提出了一个使用 regex_replace 的解决方案,这可能有点矫枉过正 (?)

SELECT regexp_replace(to_char(DATE '2000 12 05', 'DD RM YYYY'),
                     '(\d+)\s+([IVX]+)\s+(\d+)',E'\1 \2 \3','g');

哪个 returns 单倍行距日期结果:

"05 XII 2000"
"02 VIII 1976"
"02 V 1976"

有没有更优雅的方法来做到这一点? (...或者 post PostgreSQL 中的错误?)

只需添加 FM:

FM suppresses leading zeroes and trailing blanks that would otherwise be added to make the output of a pattern be fixed-width.

SELECT to_char(DATE '2000 01 05', 'DD FMRM YYYY');
-- 05 I 2000

Rextester Demo