On Mon, 7 May 2007, Tom Lane wrote:

No, that's a truly awful way to do it.  The correct way is to use number
times interval multiplication, eg

        date_issued + term * '1 year'::interval;

This reduces to not much more than a floating-point multiply, whereas
the other way involves string-forming and string-parsing.  Plus you
can easily use whatever multiplier you like, eg '7 days' if weeks
strike your fancy.

  Thank you, Tom. This makes sense to me and I did not pick up on this in my
readings.

It might be that converting those columns to interval is the best answer,
depending on what other processing needs to be done with them. But if Rich
wants to leave them as numbers, the above is the best way to convert them
to intervals on-the-fly.

  No, we'll use whatever data type makes extracting rows the easiest and
most efficient.

  I don't see 'interval' as a data type in the docs. Is it a single-quoted
string? We can do converstions between the UI and storage (in both
directions), so the type in the DDL can be whatever's best.

Rich

--
Richard B. Shepard, Ph.D.               |    The Environmental Permitting
Applied Ecosystem Services, Inc.        |          Accelerator(TM)
<http://www.appl-ecosys.com>     Voice: 503-667-4517      Fax: 503-667-8863

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to