Re: Questions about daterange() function - Mailing list pgsql-general

From David G Johnston
Subject Re: Questions about daterange() function
Date
Msg-id 1403745664974-5809277.post@n5.nabble.com
Whole thread Raw
In response to Questions about daterange() function  (Ken Tanzer <ken.tanzer@gmail.com>)
Responses Re: Questions about daterange() function
List 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.


pgsql-general by date:

Previous
From: Ken Tanzer
Date:
Subject: Re: Questions about daterange() function
Next
From: Rémi Cura
Date:
Subject: Re: python modul pre-import to avoid importing each time