<3 <3 <3  Worked like a charm. I have no problems with adding a cast,
especially since that is how I do it in sql.  Thanks again for connecting
the dots on this and making my code a better place.


On Fri, Nov 15, 2013 at 5:17 PM, Jeremy Evans <[email protected]>wrote:

> On Friday, November 15, 2013 12:50:51 PM UTC-8, Rob Sullivan wrote:
>>
>> I have a table with a tsrange field and I use the follow query to figure
>> out if something falls on today:
>>
>> select * from burritotrucks where onsite @> '2013-11-15'::timestamp
>>
>> When I run a basic fetch command it works great:
>> @eating = DB.fetch("select * from burritotrucks where onsite @>
>> '2013-11-15'::timestamp").all
>>
>> when I run it with the pg_range operators:
>> @eating = DB[:burritotrucks].where(:onsite.pg_range.contains('
>> 2013-11-15'))
>> or
>> @eating = DB[:burritotrucks].where(:onsite.pg_range.contains(Date.today))
>>
>> it doesn't understand that the passed in value is supposed to be a
>> timestamp and not a date - thus throwing errors on the min/max boundaries.
>>
>> Any thoughts on how get it to understand that it's a timestamp?
>>
>
> The easiest way to get this to work is to cast manually, just as you do in
> the SQL:
>
>   @eating = DB[:burritotrucks].where(:
> onsite.pg_range.contains(Sequel.cast(Date.today, Time)))
>
> This could theoretically be handled automatically, if the date/timestamp
> literalization on PostgreSQL added such casts automatically.  But the issue
> at least for timestamps is which cast to use, timestamp or timestamptz.  I
> think it's possible that adding the casts automatically could break
> existing code, so I'm reluctant to do so by default.  However, I'd consider
> an extension that does so.
>
> Thanks,
> Jeremy
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "sequel-talk" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/sequel-talk/Dtosrchkhb0/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sequel-talk.
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sequel-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sequel-talk.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to