如何从 SQL 中的 string/varchar 列中提取月份

How to extract month from a string/varchar column in SQL

我有一个要提取月份的 string/varchar 列。我首先将它转换为时间戳并尝试提取月份,但它没有用。你能帮忙吗?

created_at = "2013-01-01 20:59:39"

select month(created_at_new)
from(
SELECT
  *
  ,created_at::timestamp as created_at_new
FROM tutorial.yammer_users) as temp

我试过 DATEPART('month', created_at::timestamp) 和 strftime('%m', created_at_new)。但是运气不好:(

只使用子字符串怎么样?

select substr(created_at_now, 6, 2) as month

找到了!摘录(来自 created_at::timestamp 的月份)

PostgreSQL 具有用于此的函数 EXTRACT:

SELECT EXTRACT(MONTH FROM  TIMESTAMP '2013-11-01 20:59:39');

DB Fiddle