Mam aplikację szyn, która ma model Checkin
. Chcę znaleźć wszystkie rekordy, które znajdują się w określonym przedziale czasowym dla bieżącego dnia. Jak mogę napisać where
, aby uzyskać wszystkie zapisy, które zostały utworzone między 12.00 a 16.30?Zapytanie o szyny między dwoma razy
7
A
Odpowiedz
36
Odpowiedź @ x1a4 powinna być dla ciebie dobra, ale możesz to zrobić w bardziej czytelny i krótszy sposób, używając zakresu.
Chekin.where(created_at: Time.parse("12pm")..Time.parse("4:30pm"))
Należy wygenerować coś takiego:
SELECT "checkins".*
FROM "checkins"
WHERE ("checkins"."created_at" BETWEEN '2012-05-28 12:00:00.000000' AND '2012-05-28 16:30:00.000000')
można zmienić Time.parse("12pm")
z inny sposób stworzyć razem.
8
To wygląda jak to działa, zakładając Strefa czasowa UTC:
Record.where('created_at > ? AND created_at < ?', Date.today + 12.hours, Date.today + 16.5.hours)
lub z BETWEEN
:
Record.where('created_at BETWEEN ? AND ?', Date.today + 12.hours, Date.today + 16.5.hours)
BETWEEN
może lub nie może zawierać drugą wartość w przedziale. Postgres includes it.
0
Można użyć poniżej gem znaleźć zapisy między datami,
Ten gem dość łatwe w użyciu i bardziej jasne [Wg gwiazdy] [1]. Używam tego klejnotu, a interfejs API jest bardziej przejrzysty, a dokumentacja jest dobrze wyjaśniona.
Post.between_times(
Time.zone.now - 3.hours, # all posts in last 3 hours
Time.zone.now
)
Tutaj można przekazać nasze pole również Post.by_month("January", field: :updated_at)
Proszę zapoznać się z dokumentacją i spróbować.
Powiązane problemy
- 1. Sprawdź różnicę w sekundach między dwoma razy
- 2. Oblicz różnicę między dwoma razy w systemie Android
- 3. Uzyskiwanie różnicy czasu między dwoma razy w javascript
- 4. Jak niszczyć wszystkie dane skojarzeń między dwoma modelami? (Początkujący szyny)
- 5. Połączenie między dwoma użytkownikami
- 6. Komunikacja między dwoma wątkami
- 7. Korelacja między dwoma wektorami?
- 8. Minimalna odległość między dwoma obracanymi prostokątami o różnych kątach
- 9. Uzyskiwanie różnicy między dwoma obiektami o tych samych właściwościach
- 10. Szyny 3: Formularz wysyłania dwa razy
- 11. komunikacja między dwoma elastycznymi aplikacjami
- 12. Zaznacz wszystkie rekordy między dwoma datetime format
- 13. Animowane przejście między dwoma ImageView
- 14. chrome.tabs.onUpdated.addListener() o nazwie wiele razy
- 15. MongoDB: zapytanie o @DBRef
- 16. Zapytanie o wyzerowanie kolby
- 17. Zapytanie o wstawienie hibernacji
- 18. Zapytanie o GridFS MongoDB?
- 19. MongoDB odległość drukowania między dwoma punktami
- 20. Oblicz różnicę czasu między dwoma wierszami
- 21. Android - odległość między dwoma miastami
- 22. Usuń wszystko między dwoma znakami
- 23. Bash - różnica między dwoma listami
- 24. Zastępowanie tekstu między dwoma ograniczeniami
- 25. Komunikacja między dwoma skrypty python
- 26. Podkreślenie między dwoma image-linki
- 27. Fizyczna odległość między dwoma miejscami
- 28. Znaleźć kąt między dwoma łożyskami
- 29. Zmniejszanie odległości między dwoma boxplots
- 30. Przesuwanie między dwoma widokami UIViewControllerów
Z której bazy danych korzystasz? funkcje do uzyskania godziny będą się różnić. Będzie to najłatwiejsze, jeśli oprócz godziny będziesz przechowywać godzinę/minutę dnia. –
Używam postgresql. Używam standardowej kolumny "create_at" timestamp, którą zapewnia Rails –