gpt4 book ai didi

sql - 从 VARCHAR 转换为 DATE

转载 作者:行者123 更新时间:2023-11-29 12:42:42 24 4
gpt4 key购买 nike

我有一个数据库,其中我已将 2 个日期列转换为 varchar,目的是将 1 列子字符串化为另一列。但是,现在我尝试使用时似乎无法转换数据类型:

 ALTER TABLE datacomplete
ALTER COLUMN yearmonth TYPE DATE; /*Can't find a way to specify a format*/

它抛出这个错误:

ERROR: column "yearmonth" cannot be cast automatically to type date
Hint: You might need to specify "USING yearmonth::date".

我完全不确定如何使用该命令,任何人都可以提供帮助吗?

我的第一列的格式是 yyyy-mm-dd,但我希望它只是 yyyymm,但我猜这更容易一旦我将数据类型转换为日期,我就可以以某种方式切换格式。

第二列仅显示年份,因此我需要将其转换为格式为“yyyy”的日期。

更新:第一个已解决,现在我需要将第二个转换为 'yyyy'

    ALTER TABLE pscomplete_1 ALTER COLUMN "year" TYPE DATE USING "year"::date;

它抛出这个错误

15:12:51 [ALTER - 0 rows, 1.062 secs] [Code: 0, SQL State: 22007] ERROR: >invalid input syntax for type date: "2016" ... 1 statement(s) executed, 0 rows affected, exec/fetch time: 1.062/0.000 sec >[0 successful, 1 errors]

最佳答案

USING 关键字允许您将翻译功能赋予 PostgreSQL。

对于您的第一列,很容易因为您已经有了正确的 DATE 格式:

ALTER TABLE datacomplete ALTER COLUMN yearmonth TYPE DATE USING yearmonth::DATE;

对于您的第二列,PostgreSQL 不清楚您想要哪个确切日期。假设我们想要给定年份的一月一日:

ALTER TABLE datacomplete ALTER COLUMN year TYPE DATE USING (year || '-01-01')::DATE;

关于sql - 从 VARCHAR 转换为 DATE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41593987/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com