Ich muss alle Datensätze finden, die an einem bestimmten Wochentag erstellt wurden. Ich habe nur das Standardmodell Datetime Timestamps. Wie würde ich das im Active Record machen?Suchen Sie alle Datensätze, die an einem bestimmten Wochentag erstellt wurden
Antwort
Sie können die DAYOFWEEK-Funktion in MySQL verwenden und an die Option: conditions übergeben. Angenommen, Sie ein Modell namens Artikel haben, würde dies alle der am Sonntag erstellten Elemente zurück:
Einzelteil bekannt (: conditions => [ '? Dayofweek (created_at) =', 1])
Mit Postgres können Sie etwas ähnliches mit to_char tun.
Beachten Sie, dass die Verwendung einer solchen Funktion wahrscheinlich dazu führt, dass die Datenbank einen vollständigen Tabellenscan durchführt, da zumindest MySQL das Hinzufügen eines Indexes zu einer Funktion nicht unterstützt. Sie können in Erwägung ziehen, den Wochentag in eine andere Spalte zu extrahieren, wenn Sie dies häufig vorziehen.
Dies ist perfekt, danke. – KJF
Erhalten Sie die Sekunden seit Unix Epoch. Time.to_i
tut dies in Ruby.
Verwenden Sie Modul von 7, um den Wochentag zu erhalten (0 bis 6).
dayOfWeek = (epochseconds/86400) % 7;
Um Follow-up auf Justins Antwort
where("extract(dow from created_at) = ?", Date.today.wday)
Dies ist, was für Postgres in meiner Anwendung ich verwende. Dadurch werden alle Datensätze gefunden, die am selben Wochentag erstellt wurden wie heute. Wenn heute beispielsweise Dienstag wäre, würde es alle Datensätze finden, die dienstags erstellt wurden.
- 1. Schienen: Finden Sie Aufgaben, die an einem bestimmten Tag erstellt wurden?
- 2. Auslöser lokale Benachrichtigung an bestimmten Wochentag
- 3. Suche nach allen Blog-Posts, die an einem bestimmten Tag erstellt wurden
- 4. Entfernen Sie Dateien, die zwischen bestimmten Zeitstempeln erstellt wurden.
- 5. PHP - Holen Sie sich alle Daten, die auf einen bestimmten Wochentag in einem Jahr fällt
- 6. Suchen Sie doppelte Datensätze mit unterschiedlichen Werten
- 7. Wie finde ich die Gesamtzahl der Datensätze an einem bestimmten Tag mit T-SQL?
- 8. Wählen Sie Datensätze von einem bestimmten Datum
- 9. Erhalten Sie Datensätze in einem bestimmten Zeitraum
- 10. Löschen Sie alle Datensätze aus einem Geschäft
- 11. Finden Sie Dateien, die zuerst in einem bestimmten Stream erstellt wurden
- 12. Die Liste der gespeicherten Prozeduren abrufen, die zu einem bestimmten Datum erstellt und/oder geändert wurden?
- 13. Suchen und löschen Sie alle Datensätze mit einer bestimmten Zeichenfolge in einer SQL Server-Datenbank
- 14. Holen Sie sich die nächste LocalDateTime für einen bestimmten Wochentag
- 15. SQL für Produkte, die am bestimmten Tag erstellt wurden
- 16. CloudKit: Alle Datensätze mit einem bestimmten Datensatztyp abrufen?
- 17. Alle Webanwendungen wie YouTube, die in Adobe Flex erstellt wurden?
- 18. Wann wurden erweiterte Datensätze eingeführt?
- 19. Suchen von Pull-Anfragen, die von einem bestimmten Benutzer zusammengeführt wurden
- 20. Facebook Check-ins an einem bestimmten Ort suchen
- 21. Daten eines bestimmten Wochentag in R
- 22. Wie zeigen Sie alle Datensätze aus einer bestimmten mySQL-Zeile an - außer Duplikaten?
- 23. finden doppelte Datensätze nach bestimmten Spaltenwerte in einer Datei suchen
- 24. BigQuery-Befehlszeile - Alle Jobs auflisten, die mit einem bestimmten Zeitraum ausgeführt wurden
- 25. Filterreservierungen, die vom angemeldeten Benutzer erstellt wurden
- 26. Löschen Sie alle zugehörigen Datensätze
- 27. Hier finden Sie alle aktuellen Zeilen, die von einem Autor geändert wurden
- 28. Code in einem bestimmten GitHub suchen Zweig
- 29. Anzeigen bestimmter Datensätze, die bestimmten Kriterien entsprechen.
- 30. So finden Sie den Wochentag - Java
Schienen 2 oder 3? Meinst du einen bestimmten Tag, z.B. 24.11.2010 oder nur "Donnerstag" als Wochentag? –
Verwandte Frage? http://stackoverflow.com/questions/742277/rails-find-tasks-that-were-created-on-a-certain-day –