Thread: range type expression syntax
Seems I'm missing a trick trying to get rangetypes working: No problem building the string: select concat('''[', now()::date, ',', now()::date, ']''') testrange; testrange --------------------------- '[2015-02-26,2015-02-26]' (1 row) Bombed-out trying to turn this into a daterange: postgres=# select concat('''[', now()::date, ',', now()::date, ']''')::daterange testrange; ERROR: malformed range literal: "'[2015-02-26,2015-02-26]'" DETAIL: Missing left parenthesis or bracket. Is there a specific casting I need to apply in order to render a literal daterange from parameterized range elements? /john
On Thu, 26 Feb 2015 15:11:28 -0500, John Turner <jjturner@energi.com> wrote: > Seems I'm missing a trick trying to get rangetypes working: > > No problem building the string: > select concat('''[', now()::date, ',', now()::date, ']''') testrange; > testrange > --------------------------- > '[2015-02-26,2015-02-26]' > (1 row) > > Bombed-out trying to turn this into a daterange: > postgres=# select concat('''[', now()::date, ',', now()::date, > ']''')::daterange testrange; > ERROR: malformed range literal: "'[2015-02-26,2015-02-26]'" > DETAIL: Missing left parenthesis or bracket. > > Is there a specific casting I need to apply in order to render a literal > daterange from parameterized range elements? > > /john > > Sorry - too quick to post, I realize there was no need to wrap the expression in extra quotes: postgres=# select concat('[', now()::date, ',', now()::date, ']')::daterange testrange; testrange ------------------------- [2015-02-26,2015-02-27) (1 row)
> postgres=# select concat('[', now()::date, ',', now()::date, > ']')::daterange testrange; There are range specific functions for this: select daterange(now()::date, now()::date, '[]') regards, Marc Mamin ________________________________________ Von: pgsql-general-owner@postgresql.org [pgsql-general-owner@postgresql.org]" im Auftrag von "John Turner [jjturner@energi.com] Gesendet: Donnerstag, 26. Februar 2015 21:17 An: pgsql-general@postgresql.org Betreff: Re: [GENERAL] range type expression syntax On Thu, 26 Feb 2015 15:11:28 -0500, John Turner <jjturner@energi.com> wrote: > Seems I'm missing a trick trying to get rangetypes working: > > No problem building the string: > select concat('''[', now()::date, ',', now()::date, ']''') testrange; > testrange > --------------------------- > '[2015-02-26,2015-02-26]' > (1 row) > > Bombed-out trying to turn this into a daterange: > postgres=# select concat('''[', now()::date, ',', now()::date, > ']''')::daterange testrange; > ERROR: malformed range literal: "'[2015-02-26,2015-02-26]'" > DETAIL: Missing left parenthesis or bracket. > > Is there a specific casting I need to apply in order to render a literal > daterange from parameterized range elements? > > /john > > Sorry - too quick to post, I realize there was no need to wrap the expression in extra quotes: postgres=# select concat('[', now()::date, ',', now()::date, ']')::daterange testrange; testrange ------------------------- [2015-02-26,2015-02-27) (1 row) -- Sent via pgsql-general mailing list (pgsql-general@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general
On Fri, 27 Feb 2015 02:57:15 -0500, Marc Mamin <M.Mamin@intershop.de> wrote: >> postgres=# select concat('[', now()::date, ',', now()::date, >> ']')::daterange testrange; > > There are range specific functions for this: > select daterange(now()::date, now()::date, '[]') > > regards, > Marc Mamin > Marc, thanks - indeed it's right there in 8.17.6! As you might suspect, I'm rushing through things more than I'd care to, so I'm grateful for this list and the dose of sanity it provides :) Cheers, John _______________________________________ > Von: pgsql-general-owner@postgresql.org > [pgsql-general-owner@postgresql.org]" im Auftrag von "John > Turner [jjturner@energi.com] > Gesendet: Donnerstag, 26. Februar 2015 21:17 > An: pgsql-general@postgresql.org > Betreff: Re: [GENERAL] range type expression syntax > > On Thu, 26 Feb 2015 15:11:28 -0500, John Turner <jjturner@energi.com> > wrote: > >> Seems I'm missing a trick trying to get rangetypes working: >> >> No problem building the string: >> select concat('''[', now()::date, ',', now()::date, ']''') testrange; >> testrange >> --------------------------- >> '[2015-02-26,2015-02-26]' >> (1 row) >> >> Bombed-out trying to turn this into a daterange: >> postgres=# select concat('''[', now()::date, ',', now()::date, >> ']''')::daterange testrange; >> ERROR: malformed range literal: "'[2015-02-26,2015-02-26]'" >> DETAIL: Missing left parenthesis or bracket. >> >> Is there a specific casting I need to apply in order to render a literal >> daterange from parameterized range elements? >> >> /john >> >> > Sorry - too quick to post, I realize there was no need to wrap the > expression in extra quotes: > > postgres=# select concat('[', now()::date, ',', now()::date, > ']')::daterange testrange; > testrange > ------------------------- > [2015-02-26,2015-02-27) > (1 row)