character_varying
PostgreSQLデータベースの特定の列をタイプごとに変更したいのですがdate
。日付は次の形式ですyyyy:mm:dd
私がやろうとした:
alter table table_name
alter column date_time type date using (date_time::text::date);
しかし、私はエラーメッセージを受け取りました:
日付/時刻フィールドの値が範囲外です: "2011:06:15"
character_varying
PostgreSQLデータベースの特定の列をタイプごとに変更したいのですがdate
。日付は次の形式ですyyyy:mm:dd
私がやろうとした:
alter table table_name
alter column date_time type date using (date_time::text::date);
しかし、私はエラーメッセージを受け取りました:
日付/時刻フィールドの値が範囲外です: "2011:06:15"
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