我有一个包含列month
(integer
)的表格。在此列中,我存储了1, 2, .. 12
等值
但我必须显示月份名称。
例:
如果值为1
,则需要显示jan
。
答案 0 :(得分:33)
基本上@small_duck已发布了什么,但有一些改进:
SELECT to_char(to_timestamp (4::text, 'MM'), 'TMmon')
对文字4::text
进行简单投射就足够了,不需要to_char(..)
。
问题要求小写“jan”,有一个template pattern:mon
。
如果要本地化输出,请在模板前加上modifier TM
。
答案 1 :(得分:6)
可能会有更快的答案,但似乎可以通过:
例如:
select to_char(to_timestamp(to_char(4, '999'), 'MM'), 'Mon')
返回'Apr'。
您可以将其变成一个功能:
create function to_month(integer) returns varchar as
$$
select to_char(to_timestamp(to_char($1, '999'), 'MM'), 'Mon');
$$ language sql
并在整个代码中使用它。
select to_month(month_column) from mytable