PostgreSQL将月份名称转换为数字

atmip9wb  于 2023-03-17  发布在  PostgreSQL
关注(0)|答案(5)|浏览(232)

我有一个查询,返回一个字段作为月份和年份,例如“Nov 2015”我想获得月份的数字,在这里我必须获得数字作为“11”。

oknwwptz

oknwwptz1#

你可以使用to_date函数,它可以把某种格式的输入解析成一个“真实的”的日期,然后用这个日期你可以从中提取月份。

select EXTRACT(MONTH FROM to_date('Nov 2015', 'Mon YYYY'))

格式语法请参见http://www.postgresql.org/docs/current/static/functions-formatting.html,其他日期时间函数请参见http://www.postgresql.org/docs/current/static/functions-datetime.html

mpbci0fu

mpbci0fu2#

to_char()

select to_char(to_date('Nov 2015', 'Mon YYYY'), 'mm') month_no

并且查询可以是

select to_char(to_date(your_date_col, 'Mon YYYY'), 'mm') month_no
from table_name
bn31dyow

bn31dyow3#

如果您的日期是时间戳,例如:“2017-01-24 23:00:00-03”(这是带时区的时间戳)

select to_char(your_date, 'MM') from your_table

在这种情况下,结果将是:“01”

ippsafx7

ippsafx74#

您可以使用函数to_timestamp(文本,文本)和extract(从时间戳提取字段):

SELECT EXTRACT(MONTH FROM TO_TIMESTAMP("Nov 2015", "Mon YYYY"));

请参阅to_timestampextract的文档

5gfr0r5j

5gfr0r5j5#

我使用将月份编号转换为相应月份名称的基本示例:

SELECT to_char(
    to_date (1::text, 'MM'), 'Month'
    ) AS "Month Name";

结果:

Month Name 
-----------
January

相关问题