Currently you can do: CREATE TABLE t1 (ts TIMESTAMP WITH TIME ZONE NOT NULL,tr TIMESTAMP WITHOUT TIME ZONE NOT NULL); INSERT INTO t1 (ts,tr) VALUES (CURRENT_TIMESTAMP, CURRENT_TIMESTAMP); SELECT * FROM t1 WHERE ts=tr;
But it should fail with: ERROR: operator does not exist: timestamp with time zone = timestamp without time zone Also CURRENT_TIMESTAMP should fail to be inserted into a TIMESTAMP WITHOUT TIME ZONE column ERROR: column "tr" is of type timestamp without time zone but expression is of type timestamp with time zone
This is working as intended and given the amount of pain removing implicit casts generally involves it is unlikely to change.
I was curious whether something like "ALTER CAST ... NO IMPLICIT" would work but alas no such feature presently exists.