Re: Questions about daterange() function

From: David G Johnston <david(dot)g(dot)johnston(at)gmail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Questions about daterange() function
Date: 2014-06-26 01:21:05
Message-ID: 1403745664974-5809277.post@n5.nabble.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Ken Tanzer wrote
> Hi. I've got lots of tables with start and end dates in them, and I'm
> trying to learn how to work with them as date ranges (which seem
> fantastic!). I've noticed that the daterange() function seems to create
> ranges with an inclusive lower bound, and an exclusive upper bound. For
> example:
>
> SELECT
> reg_spc_date,
> reg_spc_date_end,
> daterange(reg_spc_date,reg_spc_date_end)
> FROM reg_spc
> LIMIT 5;
>
> reg_spc_date | reg_spc_date_end | daterange
> --------------+------------------+-------------------------
> 2012-04-05 | 2013-10-21 | [2012-04-05,2013-10-21)
> 2013-10-28 | | [2013-10-28,)
> 2013-11-01 | | [2013-11-01,)
> 2012-10-19 | 2013-11-01 | [2012-10-19,2013-11-01)
> 2005-03-29 | 2013-10-31 | [2005-03-29,2013-10-31)
> (5 rows)
>
> So here are my questions:
>
> 1) Is there anyway to control this behavior of daterange(), or is it just
> best to (for example) add 1 to the upper bound argument if I want an
> inclusive upper bound?

See link for question #3; namely use the three-arg version of daterange
(type,type,text)

> 2) This is purely cosmetic, but is there anyway to control the output
> formatting of a daterange to show the upper bound as inclusive? So that
> daterange(d1,d2) would display as [d1,d2-1] rather than [d1,d2)?

Not easily - you could write a custom type with the desired canonical form.

> 3) I couldn't find this discussed in the documentation, and specifically
> didn't find the daterange() function documented, including on this page
> where I might have expected it:
> http://www.postgresql.org/docs/9.3/static/functions-range.html. Is it
> somewhere else where I'm not finding it?

Yes, the documentation could maybe use some work on this topic. The
relevant information is provided at:

http://www.postgresql.org/docs/9.3/interactive/rangetypes.html

See especially: 8.17.2 & 8.17.6

David J.

--
View this message in context: http://postgresql.1045698.n5.nabble.com/Questions-about-daterange-function-tp5809274p5809277.html
Sent from the PostgreSQL - general mailing list archive at Nabble.com.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Rémi Cura 2014-06-26 09:14:27 Re: python modul pre-import to avoid importing each time
Previous Message Ken Tanzer 2014-06-26 01:15:23 Re: Questions about daterange() function