Tengo una aplicación de rieles que tiene un modelo Checkin
. Quiero encontrar todos los registros que están dentro de un rango de tiempo específico para el día actual. ¿Cómo escribiría un where
para obtener todos los registros que se crearon entre las 12PM y las 4:30 PM?Consulta de raíles entre dos veces
Respuesta
La respuesta de @x1a4 debe ser buena para usted, pero puede hacerlo de una manera más legible y más corta, utilizando un rango.
Chekin.where(created_at: Time.parse("12pm")..Time.parse("4:30pm"))
Se debe generar algo como:
SELECT "checkins".*
FROM "checkins"
WHERE ("checkins"."created_at" BETWEEN '2012-05-28 12:00:00.000000' AND '2012-05-28 16:30:00.000000')
Puede cambiar Time.parse("12pm")
con cualquier otra forma de crear un tiempo.
Esto parece que podría funcionar, asumiendo zona horaria UTC:
Record.where('created_at > ? AND created_at < ?', Date.today + 12.hours, Date.today + 16.5.hours)
o con un BETWEEN
:
Record.where('created_at BETWEEN ? AND ?', Date.today + 12.hours, Date.today + 16.5.hours)
BETWEEN
puede o no incluir el segundo valor en el rango. Postgres includes it.
Usted podría utilizar a continuación joya de encontrar los registros entre las fechas,
Este gem muy fácil de usar y más clara [Por estrellas] [1]. Estoy usando esta joya y la API es más clara y la documentación también está bien explicada.
Post.between_times(
Time.zone.now - 3.hours, # all posts in last 3 hours
Time.zone.now
)
Aquí podría pasar nuestro campo también Post.by_month("January", field: :updated_at)
Por favor, consulte la documentación y probarlo.
- 1. Uso consulta mysql_fetch_array dos veces
- 2. Consulta para seleccionar entre dos veces al día
- 3. Archivos JS incluidos dos veces en la aplicación de raíles
- 4. obtener tiempo entre dos veces al día
- 5. Apache 2 reescritura con cadena de consulta escapó dos veces
- 6. consulta LINQ entre dos objetos de lista
- 7. ¿Raíles que combinan dos matrices de hashes?
- 8. Consulta SQL NO entre dos fechas
- 9. Cálculo de cuántos minutos hay entre dos veces
- 10. Verifique la diferencia en segundos entre dos veces
- 11. cómo puedo mapear dos columnas en una sola consulta de raíles
- 12. keyboardWillShow llamado dos veces
- 13. WP7: navegue dos veces
- 14. UIGestureRecognizer ¿disparando dos veces?
- 15. Liberar memoria dos veces
- 16. log4j registrando dos veces
- 17. applicationDidBecomeActive llamarse dos veces
- 18. Lectura de secuencia dos veces?
- 19. Diferencia entre SQL JOIN y consulta de dos tablas
- 20. Consulta de Soql para recuperar oportunidades entre dos fechas
- 21. Necesito realizar la ORDEN por dos veces
- 22. ¿Cómo pasar por mysql resultado dos veces?
- 23. Eficiencia SQL - Consulta utilizando la función fechaAdd dos veces; o SubQuery y DateAdd Function una vez; en la fecha ENTRE
- 24. Cómo utilizar JsonTextReader dos veces
- 25. Lea la secuencia dos veces
- 26. Listview ItemSelectionChanged dispara dos veces?
- 27. ¿Llamar a RenderSection dos veces ...?
- 28. Biblioteca estática cargada dos veces
- 29. Método WCF llamado dos veces
- 30. jQuery $ .ajax() ejecutado dos veces?
¿Qué base de datos está utilizando? las funciones para obtener la hora del día serán diferentes. Será más fácil si almacena la hora/minuto del día además del tiempo. –
Estoy usando postgresql. Estoy usando la columna de marca de tiempo 'created_at' estándar que proporciona Rails –