将不同格式列的String数据类型的日期转换为PostgreSQL中的日期数据类型
Posted
技术标签:
【中文标题】将不同格式列的String数据类型的日期转换为PostgreSQL中的日期数据类型【英文标题】:Convert dates in String data type with different formats column to Date data type in PostgreSQL 【发布时间】:2020-06-22 19:48:44 【问题描述】:我有一个包含日期的 String ( varchar ) 类型的数据库表。这些日期采用以下格式(示例):
15-06-2018
15/06/2018
15-Jun-2018
15 June 2018
June 15, 2018
June, 15, 2018
是否有任何查询可用于使用 PostgreSQL 查询从中获取 Date 数据类型值?
感谢您的帮助。
【问题讨论】:
你有机会修复这个损坏的数据模型吗? 【参考方案1】:您可以使用大写表达式:
(case when col ~ '^[0-9]2-[0-9]2-[0-9]4$' then to_date(col, 'DD-MM-YYYY')
when col ~ '^[0-9]2/[0-9]2/[0-9]4$' then to_date(col, 'DD/MM/YYYY')
when col ~ '^[0-9]2-[A-Za-z]3-[0-9]4$' then to_date(col, 'DD Mon YYYY')
. . .
end) as the_date
【讨论】:
以上是关于将不同格式列的String数据类型的日期转换为PostgreSQL中的日期数据类型的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Pandas 数据框中的字符串转换为“日期”数据类型?