samedi 25 juin 2016
Convert SQL query to ActiveRecord Query
Hi I have a SQL query that I am running on a SQLite database. It works fine to retrieve records in a date range for Saturday & Sunday between 7AM and 6PM.
When I run the query it returns an array of hashes. I want to convert it to an ActiveRecord Query so it returns an array of objects that I can more easily operate on.
ActiveRecord::Base.connection.execute("select * from reports where datetime between '2015-03-25' and '2015-04-12' and strftime('%w', datetime) IN ('0','6') and strftime('%H', datetime) >= '07' and strftime('%H:%M', datetime)
I've looked at the docs and am uncertain how to go about this, any help would be very much appreciated!
Update:
Getting pretty close with this:
Report.where("datetime >= ? AND datetime <= ?", '2015-03-25 21:15:00', '2015-04-27 07:56:00').where("cast(strftime('%H', datetime) as int) >= ? AND cast(strftime('%H', datetime) as int) <= ?", 07,17).where("cast(strftime('%w', datetime) as int) = ?", 0)
Still need to sneak in the option of 1 (in addition to 0) on the last where clause. I am guessing it could be cleaned up as well. Still open to input!
Inscription à :
Publier les commentaires (Atom)
Aucun commentaire:
Enregistrer un commentaire