![]() |
SQL-Query für Counter
Ich suche das SQL-Statement um die Anzahl an Einträgen von einem Tag zu bekommen.
Also der Tag an dem die meißten Benutzer online waren. Tabelle: Counter_ID (PK), Counter_Time, Counter_IP, Counter_Referer ich denk das würde irgendwie mit SELECT MAX(Count_ID) WHERE und dann was mit BETWEEN aber wie genau weiß ich ned. Counter_Time ist als Unixtimestamp angegeben. |
select count(date (wo auch immer das Datum drinn sein mag)) as hits from was auch immer
group by date(wo auch immer das Datum drinn sein mag) order by hits; pong |
danke erstmal.
"wo auch immer das Datum drinn sein mag" ? wie soll ich das verwirklichen? |
Zitat:
pong |
Keine Ahnung wie performant das ist, erste Lösung dir mir eingefallen ist:
Um zb. die Zugriffszahl für jeden Tag auszuwerten: SELECT DATE_FORMAT( SpalteDatum, '%d.%m.%Y' ) , count( SpalteDatum ) FROM datumstabelle GROUP BY DATE_FORMAT( SpalteDatum, '%d.%m.%Y' ) ORDER BY SpalteDatum Wenn du für Stunde/Woche/Monat/Jahr/was-auch-immer auswerten willst, musst du den Pattern im Date_Format ändern, siehe hierzu: http://dev.mysql.com/doc/refman/4.1/...functions.html mfg T. |
Ich wäre für eine etwas kürzere Variante
"SELECT COUNT(*) c, SUBSTR(Counter_Time, 1,10) t ". "FROM `tabelle` ". "GROUP BY TO_DAYS(Counter_Time) ". "ORDER BY c ASC " sofern Counter_Time als Datetime gespeichert ist, sonst bekommst für das substr nix richtiges |
Das Datum ist als UNIX-Time stamp (int) gespeichert!
|
Zitat:
klappt der Ausdruck ansonst? |
habs mal kurz getestet, so klappt es mit unix timestamps:
PHP-Code:
|
Zitat:
|
| Alle Zeitangaben in WEZ +2. Es ist jetzt 22:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag