Hi Forum,
ich habe eine Datenbank mit vielen einzelnen Tabellen. In diesen Tabellen werden Daten gespeichert - im Viertelstundentakt.
Die Datenbank ist ungefähr so aufgebaut:
id | datum | uhrzeit | wert
int| date | time | varchar
Wie schon erwähnt werden im 15-Minutenrhytmus daten in der Datenbank gespeichert. also um 00:00:00 uhr, 00:15:00 uhr 00:30:00 uhr, 00:45:00 uhr, 01:00:00 uhr, 01:15:00 uhr usw.
Nein es hat nichts mit der Vorratsdatenspeicherung zu tun
Nun gibt es tabellen, die deshalb schon knapp 10MB groß sind (und weiter Wachsen werden). Bisher noch kein Problem (auch auf Performance sicht noch alles gut) aber Zukünftig könnte mir die Datenmengen zum Verhängniss werden. Zumal ich nur 5gb an webspace habe und die Anzahl der Tabellen in Zukunft noch wachsen wird.
Nun möchte Ich den "Kunden" 3 Monate lang die detaillierten 15-Minuten-Values anbieten und alles was Älter ist nur noch grob aufgelöst im Stundenrhytmus (Also nur die die Werte zur vollen Stunde).
Habe mir nun Folgendes gedacht.
1 mal in der Woche schucke ich zur späten Stunde (mittwoch nachts irgendwann oder so) einen Cronjob an, der mir die 15-Minutenwerte die älter als 3 Monate sind löscht.
Zu meinem Problem:
Die Abfrage der Daten die Älter sind als 3 Monate funktioniert Problemlos und wurde von mir Folgendermaßen gelöst:
Jetzt benötige ich noch eine erweiterung der WHERE Klausel, um nur die Werte zu selektieren, die nicht zur Vollen Stunde in die Datenbank geschrieben wurden. Also alle mit der "Minutenzahl" von XX:00:00 stehen zu lassen.
Das Problem ist weiterhin das nicht immer um genau xx:00:00 geschrieben wurde sondern auch mal mit paar minuten verzögerun, so dass auch mal ein Eintrag mit XX:04:00 besteht.
Jetzt hab ich keine Ahnung wie ich diese Bedinung richtig zu formulieren habe..
Habe es schon mit Between und NOT BETWEEN versucht aber keinen richtigen Lösungsansatz erhalten.
zumal
nicht funktionieren will, was an der Wildcard liegt.
Also wie Selectiere ich nur die Werte um XX:15:00, XX:30:00, XX:45:00 und lasse dabei die XX:00:00 stehen?
Vielen Dank schonmal für euere Hilfe
Grüße
Timo
ich habe eine Datenbank mit vielen einzelnen Tabellen. In diesen Tabellen werden Daten gespeichert - im Viertelstundentakt.
Die Datenbank ist ungefähr so aufgebaut:
id | datum | uhrzeit | wert
int| date | time | varchar
Wie schon erwähnt werden im 15-Minutenrhytmus daten in der Datenbank gespeichert. also um 00:00:00 uhr, 00:15:00 uhr 00:30:00 uhr, 00:45:00 uhr, 01:00:00 uhr, 01:15:00 uhr usw.
Nein es hat nichts mit der Vorratsdatenspeicherung zu tun

Nun gibt es tabellen, die deshalb schon knapp 10MB groß sind (und weiter Wachsen werden). Bisher noch kein Problem (auch auf Performance sicht noch alles gut) aber Zukünftig könnte mir die Datenmengen zum Verhängniss werden. Zumal ich nur 5gb an webspace habe und die Anzahl der Tabellen in Zukunft noch wachsen wird.
Nun möchte Ich den "Kunden" 3 Monate lang die detaillierten 15-Minuten-Values anbieten und alles was Älter ist nur noch grob aufgelöst im Stundenrhytmus (Also nur die die Werte zur vollen Stunde).
Habe mir nun Folgendes gedacht.
1 mal in der Woche schucke ich zur späten Stunde (mittwoch nachts irgendwann oder so) einen Cronjob an, der mir die 15-Minutenwerte die älter als 3 Monate sind löscht.
Zu meinem Problem:
Die Abfrage der Daten die Älter sind als 3 Monate funktioniert Problemlos und wurde von mir Folgendermaßen gelöst:
Jetzt benötige ich noch eine erweiterung der WHERE Klausel, um nur die Werte zu selektieren, die nicht zur Vollen Stunde in die Datenbank geschrieben wurden. Also alle mit der "Minutenzahl" von XX:00:00 stehen zu lassen.
Das Problem ist weiterhin das nicht immer um genau xx:00:00 geschrieben wurde sondern auch mal mit paar minuten verzögerun, so dass auch mal ein Eintrag mit XX:04:00 besteht.
Jetzt hab ich keine Ahnung wie ich diese Bedinung richtig zu formulieren habe..
Habe es schon mit Between und NOT BETWEEN versucht aber keinen richtigen Lösungsansatz erhalten.
zumal
nicht funktionieren will, was an der Wildcard liegt.
Also wie Selectiere ich nur die Werte um XX:15:00, XX:30:00, XX:45:00 und lasse dabei die XX:00:00 stehen?
Vielen Dank schonmal für euere Hilfe
Grüße
Timo
----[Blockierte Grafik: http://www.smilie-harvester.de/smilies/Alltag/putzen.gif] Nein ich bin nicht die Signatur, ich Putz hier nur ---