postgresql 从PostgresSQL中现有的TEXT类型的日期列创建DATE类型的新日期列

qvsjd97n  于 2023-01-25  发布在  PostgreSQL
关注(0)|答案(1)|浏览(134)

我有一个PostgresSQL表,其中包含TEXT类型的Date列
值如下所示:2019年7月19日00时
我想要么将此列转换为DATE类型,这样我就可以根据最新值进行查询,等等....要么创建一个DATE类型的新列并转换到那里(这样我就可以在将来使用这两种类型)。我希望得到关于这两种选择的任何建议!
希望这不是一个骗局,但我还没有找到任何答案。
一些上下文,我将需要添加更多的数据稍后到表中,只有文本列,这就是为什么我想保持原来的,但开放的建议。

vc9ivgsu

vc9ivgsu1#

可以使用以下简单命令更改列类型:

alter table my_table alter my_col type date using my_col::date

这似乎是最好的解决方案,因为维护不同类型的重复列可能会导致将来的麻烦。
请注意,列中的所有值必须是null或Postgres可识别为日期,否则转换将失败。
db<>fiddle.中测试
但是,如果坚持要创建新列,请使用update命令:

alter table my_table add my_date_col date;
update my_table
set my_date_col = my_col::date;

Db<>fiddle.

相关问题