Forum: Rails Germany sqlite distinct Datum

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Michael K. (Guest)
on 2009-01-27 16:41
(Received via mailing list)
Hallo,

ich würde gern aus einer Tabelle mit Publikationen nur die Jahreszahlen
herauzfiltern, in denen Publikationen erschienen sind. Die Tabelle steht
in
sqlite-Datenbank.

Ich habe das hier versucht:

 >> Publication.find(:all, :select => "distinct
date(published_at,'%Y')")
=> [#<Publication >]

Vielleicht kann mir ja jemand auf die Sprünge helfen.

Viele
Grüße
Michael K.
Thomas Jachmann (Guest)
on 2009-01-27 17:22
(Received via mailing list)
Moin Michael,

die Funktion date() erwartet meines Wissens keinen Format-String. Sie
gibt das übergebene Datum einfach mit '%Y-%m-%d' formatiert aus. Um
ein eigenes Format zu verwenden, nimmst Du besser strftime(). Dann
solltest Du Deinem Feld noch einen Namen geben, damit Du später
einfach darauf zugreifen kannst:

Publication.find(:all, : select => "distinct strftime('%Y',
published_at) as pa").map(&:pa)

Das liefert Dir dann ein Array mit allen Jahreszahlen (als Strings).
Etwas unschön, da für jede Jahreszahl eine Publication instanziiert
wird, aber ansonsten müsste man direkt über die connection gehen und
das komplette SQL selbst zusammenbauen.

Gruß, Thomas


Am 27.01.2009 um 15:40 schrieb Michael K.:
Michael K. (Guest)
on 2009-01-27 17:25
(Received via mailing list)
Hallo Thomas,

aahhh, wieder was gelernt. Alles klar! Funktioniert!

Vielen Dank und viele
Grüße
Michael K.

Thomas Jachmann schrieb:
This topic is locked and can not be replied to.