On 06/25/2014 05:53 PM, 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?
>
> 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)?
>
> 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?
What version of Postgres are you using?
>
> Thanks in advance!
>
> Ken
>
--
Adrian Klaver
adrian.klaver@aklaver.com