Sebastien FLAESCH wrote:
> Hello,
>
> Can someone explain this:
>
> test1=> create table t1 ( k int, i interval second );
> CREATE TABLE
> test1=> insert into t1 values ( 1, '-67 seconds' );
> INSERT 0 1
> test1=> insert into t1 values ( 2, '999 seconds' );
> INSERT 0 1
> test1=> select * from t1;
> k | i
> ---+-----------
> 1 | -00:00:07
> 2 | 00:00:39
> (2 rows)
>
> I would expect that an INTERVAL SECOND can store more that 59 seconds.
I didn't even know we had an "interval second" type. It's not entirely
clear to me what such a value means. Anyway - what's happening is that
it's going through "interval" first. So - '180 seconds' will yield
'00:03:00' and the seconds part of that is zero.
The question I suppose is whether that's correct or not. An interval can
clearly store periods longer than 59 seconds. It's reasonable to ask for
an interval to be displayed as "61 seconds". If "interval second" means
the seconds-only part of an interval though, then it's doing the right
thing.
--
Richard Huxton
Archonet Ltd