Any one suppose that these functions return the same:
make_date(-1,1,1)
to_date('-1-01-01','yyyy-mm-dd')
But make_date will give 0001-01-01 BC
And to_date will give 0002-01-01 BC
If you think this is right behavior I think this must be documented
![](/media/maillist_attaches/pgsql-bugs/2020/05/7/AM0PR03MB3570F99911704BFC77294DA1BFA50@AM0PR03MB3570.eurprd03.prod.outlook.com/8317C0FF45934B8D900FF035054FE42A.png)
من: David G. Johnston <david.g.johnston@gmail.com>
تم الإرسال: Thursday, May 7, 2020 1:45:14 AM
إلى: dar_alathar@hotmail.com <dar_alathar@hotmail.com>; PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
الموضوع: Re: BUG #16419: wrong parsing BC year in to_date() function
The following bug has been logged on the website:
Bug reference: 16419
Logged by: Saeed Hubaishan
Email address: dar_alathar@hotmail.com
PostgreSQL version: 12.2
Operating system: Windows 10x64
Description:
select to_date('-1-01-01','yyyy-mm-dd');
will get
0002-01-01 BC
select to_date('1','YYYY')::text; // Year 1 AD
select to_date('0','YYYY')::text; // Year 1 BC (there is no year zero)
select to_date('-1','YYYY')::text; // Year 2 BC
to_date tries very hard to not error - if you need to use it make sure your data conforms to the format you specify.
من: David G. Johnston
إرسال: الخميس, 14 رمضان, 1441 01:45 ص
الموضوع: Re: BUG #16419: wrong parsing BC year in to_date() function
The following bug has been logged on the website:
Bug reference: 16419
Logged by: Saeed Hubaishan
Email address: dar_alathar@hotmail.com
PostgreSQL version: 12.2
Operating system: Windows 10x64
Description:
select to_date('-1-01-01','yyyy-mm-dd');
will get
0002-01-01 BC
select to_date('1','YYYY')::text; // Year 1 AD
select to_date('0','YYYY')::text; // Year 1 BC (there is no year zero)
select to_date('-1','YYYY')::text; // Year 2 BC
to_date tries very hard to not error - if you need to use it make sure your data conforms to the format you specify.