104128
May 09, 2012, updated at 09:23:18 (UTC)
7696
5
0
Monatlich Auswertung der letzten 2 Jahre ab heutigem Datum
Folgendes habe ich vor:
Es liegt eine Datenbank vor mit einem Datumsfeld im Format "YYYY-MM-DD" welches ich auch nicht beeinflussen kann. Ich möchte nun eine automatisierte Auswertung tätigen, bei dem ab heute 2 Jahre zurück gerechnet wird und mir die Zahlen Monatsweise ausgegeben werden.
Als Beispiel:
Ich möchte den Zeitraum 09.05.2010 - 09.05.2012 auswerten. Die Daten aus der Datenbank auslesen ist nicht das Problem - das Problem besteht in der zeitlichen Berechnung.
Die Queries an die MySQL würden lauten:
"SELECT * FROM daten WHERE datum BETWEEN "2010-01-01" AND "2010-01-31"
"SELECT * FROM daten WHERE datum BETWEEN "2010-02-01" AND "2010-02-28"
"SELECT * FROM daten WHERE datum BETWEEN "2010-03-01" AND "2010-02-31"
...
Alternativ könnte ich auch alle Daten der letzten 2 Jahre in ein Array lesen:
"SELECT * FROM daten WHERE datum BETWEEN "2010-01-01" AND "2012-05-09"
nur wie bekomme ich dann immer die einzelnen Monate aus dem Array?
Die Ausgabe sollte dann als Tabelle erfolgen (nachfolgend Beispielspalten):
ID | Jan 10 | Feb 10 | Mrz 10 | April 10 | ... | Mrz 12 | Apr 12 | Mai 12
Hat jemand einen Lösungsansatz für mich?? ;-D
### EDIT ###
Die Datensätze sind nach Tagen gespeichert. Es gibt also z. B. mehrere Datensätze mit "2011-05-05" oder ähnlichem.
Es liegt eine Datenbank vor mit einem Datumsfeld im Format "YYYY-MM-DD" welches ich auch nicht beeinflussen kann. Ich möchte nun eine automatisierte Auswertung tätigen, bei dem ab heute 2 Jahre zurück gerechnet wird und mir die Zahlen Monatsweise ausgegeben werden.
Als Beispiel:
Ich möchte den Zeitraum 09.05.2010 - 09.05.2012 auswerten. Die Daten aus der Datenbank auslesen ist nicht das Problem - das Problem besteht in der zeitlichen Berechnung.
Die Queries an die MySQL würden lauten:
"SELECT * FROM daten WHERE datum BETWEEN "2010-01-01" AND "2010-01-31"
"SELECT * FROM daten WHERE datum BETWEEN "2010-02-01" AND "2010-02-28"
"SELECT * FROM daten WHERE datum BETWEEN "2010-03-01" AND "2010-02-31"
...
Alternativ könnte ich auch alle Daten der letzten 2 Jahre in ein Array lesen:
"SELECT * FROM daten WHERE datum BETWEEN "2010-01-01" AND "2012-05-09"
nur wie bekomme ich dann immer die einzelnen Monate aus dem Array?
Die Ausgabe sollte dann als Tabelle erfolgen (nachfolgend Beispielspalten):
ID | Jan 10 | Feb 10 | Mrz 10 | April 10 | ... | Mrz 12 | Apr 12 | Mai 12
Hat jemand einen Lösungsansatz für mich?? ;-D
### EDIT ###
Die Datensätze sind nach Tagen gespeichert. Es gibt also z. B. mehrere Datensätze mit "2011-05-05" oder ähnlichem.
Please also mark the comments that contributed to the solution of the article
Content-Key: 184699
Url: https://administrator.de/contentid/184699
Printed on: April 19, 2024 at 07:04 o'clock
5 Comments
Latest comment
Guck noch mal hier:
http://www.w3schools.com/sql/func_date_format.asp
http://www.w3schools.com/sql/func_date_format.asp