Discussion:
timestamp: Nach Monaten/Wochen gruppiert ausgeben
(zu alt für eine Antwort)
Peter Wittenberger
2006-11-10 08:07:24 UTC
Permalink
Hallo NG,

habe diesen Beitrag auch unter de.comp.lang.php.misc veröffentlicht.
Da es sich wohl um ein MySQL-Problem/Anliegen handelt, wurde ich gebeten
auch hier zu posten.


Bin gerade ein bischen am Verzweifeln. Habe eine MySQL-Tabelle mit ca.
400 Datensätzen. Ich möchte diese nun automatisch in Grüppchen ausgeben:

Monat 03.2006: go.......
Monat 04.2006: go.......

etc. Als Wert dient mir der timestamp, den jeder Eintrag hat. Ich
schaffe es aber nicht, automatisch diese Monate/Jahre-Gruppen zu
generieren. Was ich zur Zeit mache: Händisch den Monat 03/2006 anzulegen
und nur timestamps, die auch da reinpassen, zu selectieren und auszugeben.

Geht das auch einfacher, professioneller, automatisiert?
Ich möchte, dass mein PHP-Skript automatisch nach Monat/Jahr
gruppiert ausgibt.

Wie immer: Danke Euch,
s'Peterle
Andreas Kretschmer
2006-11-10 08:24:23 UTC
Permalink
Post by Peter Wittenberger
Bin gerade ein bischen am Verzweifeln. Habe eine MySQL-Tabelle mit ca.
Monat 03.2006: go.......
Monat 04.2006: go.......
etc. Als Wert dient mir der timestamp, den jeder Eintrag hat. Ich
schaffe es aber nicht, automatisch diese Monate/Jahre-Gruppen zu
Du willst als ein GROUP BY gruppiert um dem Monat/Jahr - Anteil eines
Datums. Du willst also mit einer Funktion Dir von einem Datum nur diese
Werte anzeigen lassen. Du willst nun wissen, wie das geht. Kurz: Du
willst das Handbuch lesen.


end
Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de
Peter Wittenberger
2006-11-10 09:11:54 UTC
Permalink
Post by Andreas Kretschmer
Post by Peter Wittenberger
Bin gerade ein bischen am Verzweifeln. Habe eine MySQL-Tabelle mit ca.
Du willst als ein GROUP BY gruppiert um dem Monat/Jahr - Anteil eines
Datums. Du willst also mit einer Funktion Dir von einem Datum nur diese
Werte anzeigen lassen. Du willst nun wissen, wie das geht. Kurz: Du
willst das Handbuch lesen.
end
Andreas
Hallo Andreas,

genau. Group by mache ich ja jetzt schon. Allerdings "kreise" ich die
timestamps händisch ein. Bereich A = x bis y, Bereich(Monat) B = y bis z
usw. Darum auch mein Post: Gibt es eine Funktion, mit der ich das
händische weglassen und den timestamp zielgerecht handeln kann.

LG, Peter
Andreas Kretschmer
2006-11-10 09:20:24 UTC
Permalink
Post by Peter Wittenberger
Hallo Andreas,
genau. Group by mache ich ja jetzt schon. Allerdings "kreise" ich die
timestamps händisch ein. Bereich A = x bis y, Bereich(Monat) B = y bis z
usw. Darum auch mein Post: Gibt es eine Funktion, mit der ich das
händische weglassen und den timestamp zielgerecht handeln kann.
*LIES* *DAS* *HANDBUCH*. _Jetzt_!

Ich lese es nicht für Dich, um das MySQL-Gegenstück für
to_char(datum, 'yyyy-mm') (PostgreSQL) zu suchen.


end
Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de
Peter Wittenberger
2006-11-10 10:55:37 UTC
Permalink
Post by Andreas Kretschmer
Post by Peter Wittenberger
Hallo Andreas,
genau. Group by mache ich ja jetzt schon. Allerdings "kreise" ich die
timestamps händisch ein. Bereich A = x bis y, Bereich(Monat) B = y bis z
usw. Darum auch mein Post: Gibt es eine Funktion, mit der ich das
händische weglassen und den timestamp zielgerecht handeln kann.
*LIES* *DAS* *HANDBUCH*. _Jetzt_!
Ich lese es nicht für Dich, um das MySQL-Gegenstück für
to_char(datum, 'yyyy-mm') (PostgreSQL) zu suchen.
end
Andreas
Hallo Andreas,

habe nun über das Handbuch eine Lösung gefunden:

SELECT COUNT(*) as num,EXTRACT(YEAR_MONTH FROM FROM_UNIXTIME(datum)
) as jahr_monat FROM muster_daten GROUP BY jahr_monat desc

Klappt auch wunderbar auf meiner Linuxumgebung. Portiere ich aber das
Ganze auf meinen Win-Laptop (den ich leider zeitgleich benötige) haut
die UNIXTIME natürlich nicht hin. Fehler auf meinem WAMP. LAMP: Passt.
WAMP - Fehler. Reicht hier eine kleine Korrektur oder ist der Ansatz
komplett daneben?

Gruss,
Peter
Andreas Kretschmer
2006-11-10 11:01:50 UTC
Permalink
Post by Peter Wittenberger
Klappt auch wunderbar auf meiner Linuxumgebung. Portiere ich aber das
Ganze auf meinen Win-Laptop (den ich leider zeitgleich benötige) haut
die UNIXTIME natürlich nicht hin. Fehler auf meinem WAMP. LAMP: Passt.
WAMP - Fehler. Reicht hier eine kleine Korrektur oder ist der Ansatz
komplett daneben?
Ja, klar, tausche halt einfach UNIXTIME gegen WINDOWSTIME aus.


*SCNR*


end
Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de
Peter Wittenberger
2006-11-10 11:09:31 UTC
Permalink
Post by Andreas Kretschmer
Post by Peter Wittenberger
Klappt auch wunderbar auf meiner Linuxumgebung. Portiere ich aber das
Ganze auf meinen Win-Laptop (den ich leider zeitgleich benötige) haut
die UNIXTIME natürlich nicht hin. Fehler auf meinem WAMP. LAMP: Passt.
WAMP - Fehler. Reicht hier eine kleine Korrektur oder ist der Ansatz
komplett daneben?
Ja, klar, tausche halt einfach UNIXTIME gegen WINDOWSTIME aus.
*SCNR*
end
Andreas
Andreas, super - danke klappt **SSG**

Gruss,
Peter
Axel Schwenke
2006-11-10 14:32:59 UTC
Permalink
Post by Peter Wittenberger
SELECT COUNT(*) as num,EXTRACT(YEAR_MONTH FROM FROM_UNIXTIME(datum)
) as jahr_monat FROM muster_daten GROUP BY jahr_monat desc
Klappt auch wunderbar auf meiner Linuxumgebung. Portiere ich aber das
Ganze auf meinen Win-Laptop (den ich leider zeitgleich benötige) haut
die UNIXTIME natürlich nicht hin.
Dann mach es halt ohne FROM_UNIXTIME(). Wieso hast du *überhaupt* einen
Timestamp im UNIX-Format in einer SQL-Tabelle? MySQL hat mit DATETIME
bzw. TIMESTAMP passende, opaque Spaltentypen.


XL
Peter Wittenberger
2006-11-10 15:03:09 UTC
Permalink
Post by Axel Schwenke
Dann mach es halt ohne FROM_UNIXTIME(). Wieso hast du *überhaupt* einen
Timestamp im UNIX-Format in einer SQL-Tabelle? MySQL hat mit DATETIME
bzw. TIMESTAMP passende, opaque Spaltentypen.
XL
Hallo Axel,

hast ja recht. Aber es ist ne wohl ne ziemlich alte Table von einem
Bekannten. Er wollte daraus jetzt Stats generieren lassen. Habs jetzt
mit PHP gelöst. Wenn ich selbst heute eine Table anlege, die einen
TIMESTAMP benötigt, würde ich natürlich den Typ "TIMESTAMP" verwenden.

LG,
Peter

Claus Reibenstein
2006-11-10 09:44:44 UTC
Permalink
Post by Peter Wittenberger
habe diesen Beitrag auch unter de.comp.lang.php.misc veröffentlicht.
Da es sich wohl um ein MySQL-Problem/Anliegen handelt, wurde ich gebeten
auch hier zu posten.
Nicht direkt. Du wurdest gebeten, in den "speziellen Gruppen" zu fragen.
Da Deine Frage sowohl Datenbanken als auch PHP betrifft, wäre
de.comp.lang.php.datenbanken wohl die bessere Wahl.

Ich leite mal dahin um.
Post by Peter Wittenberger
Bin gerade ein bischen am Verzweifeln. Habe eine MySQL-Tabelle mit ca.
Monat 03.2006: go.......
Monat 04.2006: go.......
etc. Als Wert dient mir der timestamp, den jeder Eintrag hat. Ich
schaffe es aber nicht, automatisch diese Monate/Jahre-Gruppen zu
generieren. Was ich zur Zeit mache: Händisch den Monat 03/2006 anzulegen
und nur timestamps, die auch da reinpassen, zu selectieren und auszugeben.
Geht das auch einfacher, professioneller, automatisiert?
Ich möchte, dass mein PHP-Skript automatisch nach Monat/Jahr
gruppiert ausgibt.
Wie immer: Danke Euch,
s'Peterle
Gruß. Claus
--
,~°O O
O <http://www.wedding-card.de/> ,´ / |/|\
/ |¯`. Das neue Hochzeits-Branchenbuch im Internet ,´ / | |\
/__| `~...............................................~´ /___|/ /
Loading...