Tutorial :Query for all rows with created_at between certain hours?



Question:

I need to retrieve all rows from a table where the created_at timestamp is during a certain hour ... say 04:00 and 05:00. Anyone know how to do this?


Solution:1

RecordNameHere.find_by_sql("SELECT * FROM `table_name_here` WHERE HOUR(created_at) = HOUR('4:01:00')")  

The MySQL documentation is awesome: http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_hour


Solution:2

For multiple hour range (eg: records between in 4:00 to 6:00)

User.all(:conditions => "HOUR(created_at) BETWEEN ? AND ?", 4, 5)  

For single hour use the following syntax:

User.all(:conditions => "HOUR(created_at) = ?", 4)  

Note 1 The HOUR method returns the hour in 24 hour format. Provide the hour value accordingly.


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »