PostgreSQL将月份名称转换为数字

时间:2015-11-25 08:53:42

标签: postgresql postgresql-9.3

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

4 个答案:

答案 0 :(得分:3)

您可以使用to_date函数将某种格式的输入解析为“真实”日期。然后使用此日期,您可以从中提取月份。

curl.cainfo="D:path\to\your\cacert.pem"

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

答案 1 :(得分:1)

  

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

答案 2 :(得分:0)

您可以使用 to_timestamp (文字,文字)和提取功能(来自时间戳的字段):

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

请参阅to_timestampextract

的文档

答案 3 :(得分:0)

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

select to_char(your_date, 'MM') from your_table

然后结果将是这种情况:" 01"