繁体   English   中英

从PostgreSQL中的数字中获取月份名称

[英]Get month name from number in PostgreSQL

我有一个列monthinteger )的表。 在此列中,我存储的值为1, 2, .. 12
但我必须显示月份名称

例如:如果值为1我需要显示jan

基本上@small_duck已经发布了什么,但有一些改进:

SELECT to_char(to_timestamp (4::text, 'MM'), 'TMmon')
  • 对text 4::text就足够了,不需要to_char(..)

  • 问题要求小写“jan”,有一个模板模式mon

  • 如果要本地化输出,请在模板前添加修饰符 TM

可能会有更快的答案,但似乎有可能通过:

  • 把你的int变成一个字符串
  • 将该字符串作为时间戳读取
  • 显示时间戳的月份。

例如:

select to_char(to_timestamp(to_char(4, '999'), 'MM'), 'Mon')

返回'4月'。

你可以把它变成一个函数:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM