Re: date ranges in where - Mailing list pgsql-general

From Craig Ringer
Subject Re: date ranges in where
Date
Msg-id 4A023E53.5040007@postnewspapers.com.au
Whole thread Raw
In response to Re: date ranges in where  (Erik Jones <ejones@engineyard.com>)
List pgsql-general
Erik Jones wrote:
>
> On May 6, 2009, at 2:19 PM, Adrian Klaver wrote:
>
>> On Wednesday 06 May 2009 2:12:47 pm Miguel Miranda wrote:
>>> Hi, what is the recommended way to select a range of dates?
>>>
>>> Lets say a have a table with a lastlogin (timestamp) column and i want
>>> toknow what users logged in for last time between 2009-05-01 and
>>> 2009-05-02?
>>>
>>> I know that a simple
>>>
>>> where lastlogin between '2009-05-01' and '2009-05-02' doesnt work
>>> beacuse
>>> it doesnt include who logged in 2009-05-02 15:30:00, etc...
>>
>> lastlogin between '2009-05-01' AND '2009-05-03'
>
> Technically, BETWEEN is inclusive of the two values given so that would
> also match '2009-05-03 00:00:00'.

It would be kind of nice to have a right-exclusive BETWEEN. I've had a
few situations like this come up, and while it's not a big deal to do, eg:

SELECT ... WHERE x BETWEEN start_time
AND end_time + '1 day' - '0.00001 seconds'::interval;

... it'd be nicer (and less sensitive to timestamp precision issues) to
just have a BETWEEN RIGHT EXCLUSIVE or similar.

--
Craig Ringer

pgsql-general by date:

Previous
From: Craig Ringer
Date:
Subject: Re: Transaction settings: nowait
Next
From: Alvaro Herrera
Date:
Subject: Re: PgUS 501c3 Public Charity