• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Minimum und Maximum Datum ausgeben lassen

Gilles

Blogger
Halloo,
Schlage mich jetzt schon ein weilchen mit folgenden Problem rum.
Ich habe eine Anwendung, in der ein User ein Von- und Bis-Datum eingeben kann. Nun will ich in der Datenbank suchen ob Datensätze für diesen zeitraum vorliegen und will mir das Minimum- und Maximum-Datum ausgeben lassen.

Beispiel:

User-Eingabe:
Min: 01.01.2009
Max: 31.12.2009

Query bei normaler Suche:
Code:
SELECT `timestamp` FROM `daten` WHERE `timestamp` BETWEEN '2009-01-01' AND '2009-12-31';
Ausgabe könnte folgendes sein:
Code:
-> [B]2009-08-12 16:00[/B]
    2009-08-20 16:00 
    2009-09-01 16:00 
    2009-09-10 16:00 
    2009-10-05 16:00 
    [B]2009-11-20 16:00 [/B]
Was ich nun gerne hätte wären folgende Datensätze
Code:
-> 2009-08-12 16:00
    2009-11-20 16:00
(Brauche das Ganze um einen Zeitraum festlegen zu können :))

Vielen Dank schon einmal für Antworten. :)
 
Zuletzt bearbeitet:
Ich will mir nur das Minimum und das Maximum Datum ausgeben lassen, was bei einer normalen Suche gefunden werden würde :)
Siehe in der mittleren "Code-Box" ist es der erste und der letzte Datensatz.
 
select min(`timestamp`),max(`timestamp`) from `daten` where `timestamp` between '2009-01-01' AND '2009-12-31';


Ob min() und max() bei Timestamps funktioniert, weiß ich nicht. Ich denke aber schon.
 
Ich Depp hatte noch als drittes den timestamp selbst nochmal auslesen lassen und dann hat er wegen nem group problem gemeckert. Aber natürlich. Wozu die Timestamps nochmal auslesen lassen :D

Vielen Dank. Klappt wunderbar =)

Mich interessiert nun folgendes.

Ich lese jetzt die Timestamps aus und prüfe in PHP welchen Zeitraum es darzustellen gibt. Wenn ich den zeitraum habe starte ich einen neuen Query. Der folgender maßen aussehen könnte (Um nach Monaten zu ordnen):

Code:
SELECT `daten` FROM `tabelle` WHERE `timestamp` BETWEEN '2009-01-01' AND '2009-12-31' GROUP BY  DATE_FORMAT(`timestamp`, [B]%Y-%m[/B]);

Wollte nun fragen ob folgender Mysql-Abfragen Aufbau funktioniert :D
(Vorsicht imaginärer Code ^^)
Code:
# Testen ob Zeit größer als zeitraum Stunde, wenn nicht dann DateFormat -> Minute,
#  ansonsten abfragen ob zeitraum größer Tag, wenn nicht dann DateFormat -> Stunde
# ansonsten DateFormat->Tag
SELECT MIN(`timestamp`) AS `minimum`, MAX(`timestamp`) as maximum  
IF( TIMESTAMP((`maxmimum` - `minimum`)) > 3600, 
   IF( TIMESTAMP((`maxmimum` - `minimum`)) > 86400),
    "%Y-%m-%d" as `dateformat`,
    "%Y-%m-%d %H" as `dateformat`),
"%Y-%m-%d %H:%i" as `dateformat`) ....

Auch wenns kompliziert aussehen mag. Ist zu so etwas zu raten und würde es überhaupt klappen?
 
(Heute bin ich irgendwie etwas langsam, ich kapiere jetzt erst was du da machen willst)

Keine Ahnung ob es überhaupt geht, aber ich würde das nicht von mysql erledigen lassen.
 
(Heute bin ich irgendwie etwas langsam, ich kapiere jetzt erst was du da machen willst)

Keine Ahnung ob es überhaupt geht, aber ich würde das nicht von mysql erledigen lassen.

Ok. Vielen dank für die Meinung. Hab auch schon überlegt ob es überhaupt sinnvoll ist, alles auf Mysql Seite zu machen. Denke da ist es erheblich besser 2 Request zu machen als nur einen und die ganzen "If Operationen" PHP zu überlassen :)

Falls irgendwer vom Gegenteil überzeugt ist, einfach schreiben. Bin immer offen für neue Dinge. Da meine SQL-Kenntnisse nicht all zu gut sind, lasse ich mich da immer gerne eines Besseren belehren ;)
 

Neueste Beiträge

Zurück
Oben