如果我使用标准方式接收带有罗马数字月份的日期。。。
SELECT to_char(DATE '2000 12 05', 'DD RM YYYY')
PostgreSQL返回多间隔(1到4)分隔的日期:
"05 XII 2000"
"02 VIII 1976"
"02 V 1976"
RM
始终为该月的所有可能情况返回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');
返回单间隔日期结果:
"05 XII 2000"
"02 VIII 1976"
"02 V 1976"
有没有更优雅的方法?(…或者在PostgreSQL中发布错误?)