Hi All, Consider the following test:
postgres=# select version(); version ------------------------------------------------------------ ----------------------------------------------------- PostgreSQL 9.3devel on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4), 64-bit (1 row) postgres=# create table test ( a timestamptz); CREATE TABLE postgres=# insert into test values ( 'Sat Mar 11 23:58:48 1000 IST'); INSERT 0 1 postgres=# select * from test; a ------------------------------ 1000-03-12 03:52:16+05:53:28 (1 row) postgres=# insert into test values ( 'Sat Mar 11 23:58:48 10000 IST'); ERROR: invalid input syntax for type timestamp with time zone: "Sat Mar 11 23:58:48 10000 IST" LINE 1: insert into test values ( 'Sat Mar 11 23:58:48 10000 IST'); So, if you see while trying to insert date 'Sat Mar 11 23:58:48 *10000* IST' , its returns with invalid input syntax. Error coming from the stack (timestamptz_in() -> DecodeDateTime()). But when I tried to enter same date with other format then it does work. postgres=# insert into test values ( '*10000*-03-11 23:58:48'); INSERT 0 1 postgres=# select * from test; a ------------------------------- Sat Mar 11 23:58:48 *10000* IST (1 row) Looking at the code, it seems like for Postgres,MDY datestyle DecodeDateTime() doesn't handle date properly if year is greater then 4 digits (greater then 9999). Do you see this as bug or expected output ? Regards, Rushabh Lathia www.EnterpriseDB.com