Thread: date format in 7.4
Hi, I have an application where users can enter the date via a web interface. Recently I upgrated my PostgreSQL version from 7.3 to 7.4.1. On 7.3 I run several tests about the format of the date and found, that Postgres accepts almost everything. Today I found out, that 7.4.1 only accepts dates in the format mm-dd-yy, although the documentation still states the following # 5. Otherwise the date field ordering is assumed to follow the DateStyle setting: mm-dd-yy, dd-mm-yy, or yy-mm-dd. Throw an error if a month or day field is found to be out of range. # ref: http://www.postgresql.org/docs/7.4/interactive/datetime-appendix.html Does anyone know, if it is intentional to restrict it to mm-dd-yy format or is is just a bug of 7.4.1? Thanks in advance for any suggestions Silke
Silke Trissl <trissl@informatik.hu-berlin.de> writes: > On 7.3 I run several tests about the format of the date and found, > that Postgres accepts almost everything. Today I found out, that 7.4.1 > only accepts dates in the format mm-dd-yy, It now requires the field order to be what DateStyle says it is. See the very voluminous flamewar about ambiguous date input handling in the pgsql-hackers archives from last summer. > although the documentation still states the following AFAICS the documentation says so too... regards, tom lane
On Fri, 20 Feb 2004, Silke Trissl wrote: > Hi, > > I have an application where users can enter the date via a web interface. > > Recently I upgrated my PostgreSQL version from 7.3 to 7.4.1. > > On 7.3 I run several tests about the format of the date and found, > that Postgres accepts almost everything. Today I found out, that 7.4.1 > only accepts dates in the format mm-dd-yy, although the documentation > still states the following > # > > 5. > > Otherwise the date field ordering is assumed to follow the > DateStyle setting: mm-dd-yy, dd-mm-yy, or yy-mm-dd. Throw an error if a > month or day field is found to be out of range. > > # > ref: http://www.postgresql.org/docs/7.4/interactive/datetime-appendix.html > > Does anyone know, if it is intentional to restrict it to mm-dd-yy format > or is is just a bug of 7.4.1? It is intentional. But, it's not as restricted as you might think. You can set the style to one of several ways you can set it. http://www.postgresql.org/docs/7.4/static/datatype-datetime.html the idea behind fixing this in 7.4 was that if you set a date style of SQL, DMY then it would be wring for the database to access a date of 3/14/04 and convert it to March 14th, since your date style said that march 14th should come in as 14/03/04. I.e. it's better at checking ranges and throwing out the ones that don't fit. Better to have a problem getting the wrong data into the database than trying to get it back out a couple years down the road.
On Friday 20 February 2004 14:58, Silke Trissl wrote: > Hi, > > I have an application where users can enter the date via a web interface. > > Recently I upgrated my PostgreSQL version from 7.3 to 7.4.1. > > On 7.3 I run several tests about the format of the date and found, > that Postgres accepts almost everything. Today I found out, that 7.4.1 > only accepts dates in the format mm-dd-yy, although the documentation > still states the following > 5. > Otherwise the date field ordering is assumed to follow the > DateStyle setting: mm-dd-yy, dd-mm-yy, or yy-mm-dd. Throw an error if a > month or day field is found to be out of range. I think what happened is that it will now *only* accept the format specified by your datestyle setting. Previously, as you say, it would have a guess at almost anything (and sometimes get it wrong). -- Richard Huxton Archonet Ltd