Gästebuch - Letzte Einträge
Besucher
Da ich nun auch anfange mich in Datenbankabfragen einzulesen bzw einzuarbeiten, stößt man zwangsläufig auf Hürden, die für einen Anfänger unüberwindbar scheinen.... Datetime ist so ein Ding, mit diesem ominösen UTC....
Ich parke das mal hier für alle mitleidenden ;)
DATE_FORMAT(CONVERT_TZ(MAX(>tabelle mit dem Datum<), 'UTC','Europe/Berlin'), '%Y-%m-%d %H:%i:%s')
Diese Zeile sagt folgendes aus:
- DATE_FORMAT ist der spezifizierte Zeitformat
- CONVERT_TZ(*Datum*,*von*'(UTC)', *nach*'gewünschte Zeitzone') -> hier habe ich als Datum: MAX(TABELLE) ausgewählt weil ich von mehreren Daten das aktuellste brauche.
- zum Schluß noch die Form der Ausgabe '%Y-%m-%d %H:%i:%s' ergibt z.B.: 2011-09-07 22:47:51 die aber noch zum DATE_FORMAT (2. Parameter) gehört.
sieht dann so aus:
SELECT DATE_FORMAT(CONVERT_TZ("2011-09-07 22:55:51", 'UTC','Europe/Berlin'), '%Y-%m-%d %H:%i:%s') AS "Zeit" ;
So siehts dann fertig bei mir aus:
SELECT >tabelle< AS Name, COUNT(>tabelle<) AS Anzahl, DATE_FORMAT(CONVERT_TZ(MAX(>tabelle<), 'UTC','Europe/Berlin'), '%Y-%m-%d %H:%i:%s') AS "letzter Beitrag vom" FROM >tabelle< INNER JOIN >tabelle< ON (>tabelle< = >tabelle<) WHERE Name <> "ohne diesen Namen" GROUP BY name ORDER BY Anzahl DESC
Hier geht es darum aus 2 Tabellen (Usern und Beiträgen) den Namen, die Anzehl der erstellten Beiträge und das Datum + Uhrzeit des zuletzt erstellten Beitrages auszugeben.
//Abfrage in eine CSV-Datei mit Überschrift speichern //Hier beginnt die Überschrift SELECT "Überschrift 1", "Überschrift 2", "Überschrift 3", .... UNION //Hier endet die Einbettung der Überschrift //Damit die Überschriften nicht in die Werte sortiert werden, wird alles folgende in runde Klammern gesetzt (SELECT spalte1, spalte2, spalte3, .... INTO OUTFILE "Pfad, z.b.: c:/xampp/mysql/beispiel.csv" FIELDS TERMINATED BY ";" ENCLOSED BY '"' ESCAPED BY "\\" LINES TERMINATED BY "\n" FROM Tabellenname WHERE spalte1 = "was auch immer" GROUP BY spalte1, spalte2, spalte3, .... ORDER BY spalte1) //Diese Abfrage ohne die Hinweise starten, sonst hagelt es Fehler ;) //Also hier nochmal zusammenhängend: SELECT "Überschrift1", "Überschrift2", "Überschrift3", "Überschrift4", .... UNION (SELECT spalte1, spalte2, spalte3, .... INTO OUTFILE "c:/xampp/mysql/beispiel.csv" FIELDS TERMINATED BY ";" ENCLOSED BY '"' ESCAPED BY "\\" LINES TERMINATED BY "\n" FROM Tabellenname .....) //Nach "from Tabellenname" können noch alle Argumente folgen, die zur Abfrage wichtig sind //egal ob Where, group by, order by ...... etc, wie oben zu sehen. Nur nicht vergessen, die Klammer zum Schluß ggf zu schließen.
Manchmal ist es sinnvoll Zwischensummen zu erstellen, mit dem Befehl WITH ROLLUP kann man das realisieren.
Das sieht dann so aus:
SELECT spalte1, IFNULL(spalte2,"Bezeichnung 1") AS spalte2, IFNULL(spalte3,"Bezeichnung 2") AS spalte3, .... FROM tabellenname GROUP BY spalte1, spalte2, spalte3 WITH ROLLUP
Wichtig zu erwähnen ist, das man kein ORDER BY mehr verwenden kann. Wenn man das Ergebnis sieht, ist es aber auch schnell deutlich warum.
Ich habe die Anweisung IFNULL(spalte, "Bezeichnung") mit angegeben, da sonst alle leeren Spaltenzeilen mit dem NULL Wert gefüllt werden. das sieht unschön aus. Wer es sehen möchte, lässt die o.a. Anweisung weg und schreibt stattdessen nur den Spaltennamen, also z.B.: spalte . Da ich in der regel in der ersten Apalte die Zahlenwerte habe, wird diese Spalte immer gefüllt sein, deswegen spare ich mir die IFNULL Anweisung hier.
Fortuna News
-
Im Video: Axel präsentiert sein F95-Dreamteam!
02.03.2021 | 20:09
-
Felix Klaus erleidet Oberschenkelzerrung
01.03.2021 | 11:56
-
Verschenkte Punkte
01.03.2021 | 10:27
-
Fortuna unterliegt Heidenheim in wilder Partie mit 2:3
28.02.2021 | 12:20
-
„So ein Spiel darfst du nicht verlieren"
28.02.2021 | 12:19
-
Zwote wird zum Stolperstein für den Aufstiegsfavoriten
26.02.2021 | 20:53
-
Fortuna präsentiert Köbestrikot
26.02.2021 | 14:10
-
„Wir brauchen den Tunnelblick“
26.02.2021 | 13:54
-
Vorstand und Aufsichtsrat ernennen Ehrenrat
25.02.2021 | 14:06
-
Appelkamp und Siebert fallen vorerst aus
25.02.2021 | 13:26