Обсуждение: to_date() accepts wrong input data
Hi,
I'm a little bit astonished:
test=*# select to_date('2012/30/03','yyyy/mm/dd');
to_date
------------
2014-06-07
(1 row)
test=*# select to_date('2013/02/29','yyyy/mm/dd');
to_date
------------
2013-03-01
(1 row)
Bug or feature? Version is 9.2.0
Andreas
--
Really, I'm not out to destroy Microsoft. That will just be a completely
unintentional side effect. (Linus Torvalds)
"If I was god, I would recompile penguin with --enable-fly." (unknown)
Kaufbach, Saxony, Germany, Europe. N 51.05082°, E 13.56889°
Andreas Kretschmer <akretschmer@spamfence.net> writes:
> Hi,
> I'm a little bit astonished:
> test=*# select to_date('2012/30/03','yyyy/mm/dd');
> to_date
> ------------
> 2014-06-07
> (1 row)
> test=*# select to_date('2013/02/29','yyyy/mm/dd');
> to_date
> ------------
> 2013-03-01
> (1 row)
> Bug or feature? Version is 9.2.0
Feature, I'm afraid --- people are used to that behavior, see eg
http://archives.postgresql.org/pgsql-general/2012-10/msg00209.php
If you want tighter checking, don't use to_date, use the regular
datetime input functions (eg, via a cast to date or timestamp).
regards, tom lane