3

character_varyingPostgreSQLデータベースの特定の列をタイプごとに変更したいのですがdate。日付は次の形式ですyyyy:mm:dd

私がやろうとした:

alter table table_name
alter column date_time type date using (date_time::text::date);

しかし、私はエラーメッセージを受け取りました:

日付/時刻フィールドの値が範囲外です: "2011:06:15"

4

1 に答える 1

7

textまたはvarcharにキャストするdateと、インストールのデフォルトの日付形式が期待されますdatestyle- postgresql.conf.

一般に、コロン ( :) は時間の区切り記号です。単純なキャストでは、PostgreSQL はおそらく '2011:06:15' を時間として解釈しようとし、失敗します。

あいまいさを取り除くto_date()には、日付の一致パターンを使用します。

ALTER TABLE table_name
ALTER COLUMN date_time type date
USING to_date(date_time, 'YYYY:MM:DD'); -- pattern for your example
于 2012-11-08T17:21:09.890 に答える