Question

I am having trouble changing a column called end_date in a table called key_request from time with time zone to timestamp in my Postgres database . I have tried using the following code:

alter table key_request alter column end_date type timestamp with time zone using end_date::timestamp with time zone

I keep getting the following error:

ERROR:  cannot cast type time with time zone to timestamp with time zone

Any idea of how I can adjust this query to work?

Était-ce utile?

La solution 2

I woul do this in a series of steps

  1. Alter the table, adding a new column end_date1 as time with time zone
  2. Copy the date from end_date(old) to end_date1
  3. Alter the table, droping the old end_date column
  4. Alter the table,reaming end_date1 to end_date

Autres conseils

you can do something like this:

alter table key_request
alter column end_date type timestamp with time zone using date('20130101') + end_date;

sql fiddle demo

Changing from java.sql.Date to java.util.Date

ALTER TABLE key_request ALTER COLUMN end_date TYPE timestamp without time zone;

If you have dependant views that relate to that table

  1. drop views
  2. change column type
  3. recreate views

Solution coming from a java/hibernate approach while in type migration.

  • java.sql.Date is translated to date
  • java.util.Date is translated to timestamp without time zone
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top