とあるプロジェクトで PostgreSQL を利用していて、日時を主キーの一部に利用しているテーブルがありました。 そのカラム型が TIMESTAMP WITH TIME ZONE だったので、ふと「あれ?これってタイムゾーンが違う場合は違うレコードになるのかな?」と思って試してみたのでメモしておきます。 問題のテーブル 問題となったテーブルは以下のような感じです。本当は他にもっとカラムがたくさんあるんですが、今回は必要ないので割愛しています。 よくある受発注を扱うようなシステムで、「【注文】はある【商品】を【いつ注文したか】で一意に識別できる」という前提のもとでproduct_idとordered_atを主キーにしていました。 postgres=# CREATE TABLE orders ( product_id integer, ordered_at timestamp with ti