>
> I just discovered that to_date() function does not check if supplied
> date is correct, giving surprising (at least for me) results:
>
> fduch=# SELECT to_date('31.11.2003', 'DD.MM.YYYY');
> to_date
> ------------
> 2003-12-01
>
> or even
>
> fduch=# SELECT to_date('123.45.2003', 'DD.MM.YYYY');
> to_date
> ------------
> 2007-01-03
>
> to_timestamp() seems to work the same way. It's probably useful sometimes,
> but not in my case... Is it how it supposed to work?
> If so, how can I do such a validity check?
> If not, has something changed in 7.4?
>
> In any case, I have to find a workaround now and will appreciate any help.
>
>
> fduch=# SELECT version();
> version
> ---------------------------------------------------------------------
> PostgreSQL 7.3.4 on i386-portbld-freebsd4.8, compiled by GCC 2.95.4
>
>
> --
> Fduch M. Pravking
>
As far as I know these results are correct in terms of the underlying
C-library function mktime(). This function is intended to be used when
adding/subtracting intervals from a given timestamp.
I don't know of any postgres function doing the check you're looking for.
But I can't believe this is the first time this topic is brought up.
You may search the archives on "date plausibility" are related terms.
HTH
Regards, Christoph