• Willkommen im Forum „Wetterstationsforum.info - Archiv“.
 

Neuigkeiten:

Dieses Forum dient ausschließlich zu Archivzwecken.
Für Fragen nutze bitte unser aktuelles Forum, welches du unter https://wetterstationsforum.info findest.

Hauptmenü

Tutorial - Wetterdaten und Datenbanken (MySQL)

Begonnen von Fredy, 10.12.2013, 17:46:23

⏪ vorheriges - nächstes ⏩

Fredy

Hast du in deinem Feld "Datum", ein date oder datetime Wert?

--
www.wetterbinningen.ch

GS63

Typ ist datetime.



[gelöscht durch Administrator]

Fredy

Dann musst du "Datum AS d" in "DATE(Datum) AS d" ändern. Ansonsten gruppierst du nicht nach Tag, sondern nach Einzelwert. Die Funktion DATE(), extrahiert den Datumteil von datetime.

Grüsse Fredy
--
www.wetterbinningen.ch

GS63

Danke!
Jetzt wird der richtige Max-Wert angezeigt. :top:

Gruß
Georg

GS63

#14
Hallo Fredy,
in meiner Wettertabelle befinden sich mittlerweile alle Datensätze seit 04/2013. Die Tabelle Tagesdaten ist entsprechend gefüllt. Genial  :top:

Gestern habe ich mit der Erstellung der Jahres-, Monats- und Wochentabellen begonnen. Bei der Jahrestabelle habe ich den Typ beim Feld Datum auf YEAR umgestellt. Funktioniert.  ;)
Bei der Monatstabelle komme ich allerdings schon ins Stolpern. Sollen (können) die Werte $row[y] und $row[m] zusammen im Datumsfeld stehen? Welcher Feldtyp müsste dann dort angegeben werden?

Hast Du generell ein Empfehlung, welche Länge/Set-Angaben beim Typ float sinnvoll (notwendig) sind?

Danke und Gruß,
Georg

Beiträge zusammengeführt, weil der Autor sich selbst geantwortet hat statt seinen letzten Beitrag zu ändern: 05.02.2015, 20:24:20

Sieht so aus, als hätte ich für die Erstellung der Monatsdaten eine Lösung gefunden. Habe im entsprechenden Script den Date-Select-Befehl so angepasst: DATE_FORMAT(Datum,'%m.%Y') AS ym,

Die Ergebnisse sehen auf den ersten Blick korrekt aus:



[gelöscht durch Administrator]

Fredy

Hallo Georg

Ich persönlich habe derzeit nur eine zusätzliche Tagestabelle, und hab mir über den sinnvollsten "Speicherweg" von Monaten/Wochen noch keine grossen Gedanken gemacht. Falls aber Jahr und Monat/Woche in 2 Spalten getrennt sind, kann dies zu Problemen führen, da die Spalten dann nicht mehr eindeutig identifizierbar sind (Primary Key/Unique). Dann gäbe es z.B. auch Probleme mit "ON DUPLICATE KEY UPDATE".

Also Grundsätzlich sinnvoll ist sicher eine Spalte welche das Jahr und Monat zusammenfasst. Je nach "Auswertungsziel" zusätzlich noch getrennt. Es sollten evtl. Klauseln wie z.B. WHERE year = "2014" möglich bleiben. Aber dafür gibt es auch wieder viele Wege  ;)

Die Länge von FLOAT hat auf den Speicherplatzverbrauch keinen Einfluss. Ich würde mich daher nicht einschränken und die volle Länge ausnutzen. Runden kannst du eigentlich zu jedem Zeitpunkt. Grundsätzlich Runde ich aber immer erst vor der eigentlichen Ausgabe, da sich ja (je nach Auswertung), "Rundungsfehler" aufsummieren könnten.

Bedenke auch, dass eine Monatstabelle selbst nach 100 Jahren, lediglich 1200 Datensätze enthalten wird. Speicherplatz und Performance Optimierungen für diese Tabelle, sind also m.M. nicht unbedingt Priorität  ;)

Grüsse Fredy
--
www.wetterbinningen.ch

GS63

Hallo Fredy,
ich möchte gerne aus meiner DB die "besonderen" Tage (Tropennächte, heiße Tage, etc.) abfragen und in einer neuen Tabelle ablegen. Dies müsste doch über die Tagestabelle zu realisieren sein? Hast Du ein paar Tipps, wie ein entsprechendes Script aufgebaut sein sollte?
Bei der Ermittlung der Tropennächte müsste die Abfrage über tMin reichen, oder:

SELECT
    DATE(datetime) AS d,
    MIN(temp) AS tMin,
FROM tagesdaten
WHERE tMin >= 20.0
.....
INSERT INTO tropennaechte
        (`date`,
        `temp_min`,
.....
VALUES
        ('$row[d]',
        '$row[tMin]',

Gruß
Georg

Fredy

Hallo Georg

Grundsätzlich wäre die gesuchte Information in der Tagestabelle enthalten. Diese könnte also durchaus für die Suche nach Tagen mit niedrigster Temperatur "nicht kleiner oder gleich 20°C" verwendet werden.

Für den Fall, dass es zwar in der Nacht nicht kälter als 20°C wurde, jedoch während des Tages, wäre die Voraussetzung einer Tropennacht nach Definition nicht gegeben. In diesem (vermutlich unwahrscheinlichen) Fall, müsste man die "Minutenwerte" Tabelle auswerten. Ich denke allerdings, dass dies vernachlässigbar ist.

Beim Aufbau des Scripts, würde ich ähnlich wie in der Tagestabelle vorgehen. Wie in deinem Beispiel, einfach die betreffenden Abfragen anpassen.

Hast du es denn schon versucht, und gibt es Probleme dabei?
--
www.wetterbinningen.ch

Holli

Zitat von: Fredy am 20.07.2015, 15:53:35
Für den Fall, dass es zwar in der Nacht nicht kälter als 20°C wurde, jedoch während des Tages, wäre die Voraussetzung einer Tropennacht nach Definition nicht gegeben. In diesem (vermutlich unwahrscheinlichen) Fall, müsste man die "Minutenwerte" Tabelle auswerten. Ich denke allerdings, dass dies vernachlässigbar ist.
So unwahrscheinlich ist der Fall nicht. Im letzten Jahr hat mich ein vormittäglicher Regen nach einer Tropennacht veranlaßt, eine Diskussion über die Definition der "Nacht" in diesem Zusammenhang loszutreten, und auch in diesem Jahr hat dieselbe Situation hier die 20°C-Marke nur um 0,2K verpaßt. So selten ist die Möglichkeit also nicht, daß die Temperatur unter 20°C fällt, nachdem die "Nacht" nach üblichen Definitionen klar vorbei ist.
Dietmar

Eine Aussage, die durch ein Ausrufezeichen bekräftigt werden muß, ist zumindest zweifelhaft.
Eine Aussage, die durch mehrere Ausrufezeichen bekräftigt wird, ist definitiv falsch.
Der aktuelle Deppensport: Wir töten ein Akkusativ.

Fredy

Wie ist die "Nacht" in der Meteorologie definiert? Zwischen Sonnenaufgang/Untergang? Dann müsste man dies in der Abfrage wohl noch berücksichtigen, und die "Tagestabelle" wäre als Quelle eher ungeeignet.

--
www.wetterbinningen.ch