Search Postgresql Archives

Re: "interval hour to minute" or "interval day to minute"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jun 16, 2011 at 06:07:50PM -0400, Bruce Momjian wrote:
> Noah Misch wrote:
> > On Sun, Apr 17, 2011 at 04:55:51PM +0100, Jack Douglas wrote:
> > > I discovered the 'fields' option of 'interval', but i can't figure out  
> > > from the docs how it is supposed to work. Are "hour to minute" and "day  
> > > to minute" really the same thing? And if not, in what circumstances are  
> > > they treated differently?
> > 
> > As of version 8.4, they behave identically.  The code has this comment, some
> > form of which probably belongs in the documentation:
> > 
> > 		/*
> > 		 * Our interpretation of intervals with a limited set of fields is
> > 		 * that fields to the right of the last one specified are zeroed out,
> > 		 * but those to the left of it remain valid.  Thus for example there
> > 		 * is no operational difference between INTERVAL YEAR TO MONTH and
> > 		 * INTERVAL MONTH.	In some cases we could meaningfully enforce that
> > 		 * higher-order fields are zero; for example INTERVAL DAY could reject
> > 		 * nonzero "month" field.  However that seems a bit pointless when we
> > 		 * can't do it consistently.  (We cannot enforce a range limit on the
> > 		 * highest expected field, since we do not have any equivalent of
> > 		 * SQL's <interval leading field precision>.)
> > 		 *
> > 		 * Note: before PG 8.4 we interpreted a limited set of fields as
> > 		 * actually causing a "modulo" operation on a given value, potentially
> > 		 * losing high-order as well as low-order information.	But there is
> > 		 * no support for such behavior in the standard, and it seems fairly
> > 		 * undesirable on data consistency grounds anyway.	Now we only
> > 		 * perform truncation or rounding of low-order fields.
> > 		 */
> 
> I am lost on how we could mention that in the docs.

Perhaps something like this?
*** a/doc/src/sgml/datatype.sgml
--- b/doc/src/sgml/datatype.sgml
***************
*** 1622,1627 **** HOUR TO MINUTE
--- 1622,1630 ----
  HOUR TO SECOND
  MINUTE TO SECOND
  </literallayout>
+     These only zero less-significant fields, making <literal>DAY TO
+     MINUTE</>, <literal>HOUR TO MINUTE</> and <literal>MINUTE</> equivalent.
+     The redundant forms exist for compatibility with the SQL standard.
      Note that if both <replaceable>fields</replaceable> and
      <replaceable>p</replaceable> are specified, the
      <replaceable>fields</replaceable> must include <literal>SECOND</>,
-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux