Re: this date format thing.

From: Karel Zak <zakkr(at)zf(dot)jcu(dot)cz>
To: Peter Haworth <pmh(at)edison(dot)ioppublishing(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: this date format thing.
Date: 2003-04-03 14:59:06
Message-ID: 20030403145905.GA16382@zf.jcu.cz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Thu, Apr 03, 2003 at 03:40:59PM +0100, Peter Haworth wrote:
> On Thu, 3 Apr 2003 16:17:05 +0200, Karel Zak wrote:
> > On Thu, Apr 03, 2003 at 12:36:07PM +0100, Peter Haworth wrote:
> > >
> > > jnlstats=> set datestyle='ISO';
> > > SET
> > >
> > > jnlstats=> select '2001-31-12'::date;
> > > date
> > > ------------
> > > 2001-12-31
> > > (1 row)
> > >
> > > jnlstats=> select to_date('2001-31-12','yyyy-mm-dd');
> > > to_date
> > > ------------
> > > 2003-07-14
> > > (1 row)
> >
> > Are you sure is there 31 months ('mm')?
>
> No. That's the point. Those examples are of dates being accepted which
> shouldn't be. If someone enters a date with the month and day swapped,
> postgres doesn't necessarily reject it.
>
> When using to_date(), there seems to be no range checking at all. This
> is even worse than the above, which will at least reject strings if they
> don't fit into any date format. to_date() seems to treat the month as
> "number of months since the beginning of the specified year" rather than
> "calendar month within the specified year".

Hmm, You're probably right that to_date/timestamp is too optimistic
and liberal if you want to use it for data checking. Oracle:

SVRMGR> select to_date('2001-31-12','yyyy-mm-dd') from dual;
TO_DATE('
---------
ORA-01843: not a valid month


I will fix it in to_date/timestamp in 7.4. Thanks.

Karel

--
Karel Zak <zakkr(at)zf(dot)jcu(dot)cz>
http://home.zf.jcu.cz/~zakkr/

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Peter Eisentraut 2003-04-03 15:08:15 Re: unicode UTF-8 columns
Previous Message Arjen van der Meijden 2003-04-03 14:55:52 Re: images in database