Problem mit Datum

Buba235

Erfahrenes Mitglied
Hallo Leute!

Ich hab mal wieder ein Problem. Ich denke ich hab auch nur ein Brett vorm Kopf und deshalb check ich es nicht. Also hier mal mein Problem:

Ich habe in einer DB 2 Spalten. Eine Spalte mit dem aktuellen Datum (angegeben z.B. 2006-09-11) und die Spalte Time (angegeben z.B. 00:00:07). Ich will jetzt immer genau eine Stunde mehr angegeben haben. Das hab ich mal so versucht:

Code:
SELECT ROUND(mydb.test.DATE * 1000000 + mydb.test.TIME) - 
(ROUND(mydb.test.DATE * 1000000 + mydb.test.TIME) % 1000) as tmstmp
FROM mydb.test WHERE mydb.test.TYPE = "Request" GROUP BY tmstmp;

Leider bekomme ich als Ergebnis nicht das was ich haben will. Es sollte eigentlich so aussehen: z.B. 20060911070000 für eben 7:00 Uhr am 11.09.2006. Ich bekomme aber immer dieses Ergebnis: z.B. 20060911000000 für eben 7:00 Uhr am 11.09.2006.

Was genau mach ich denn falsch? Die Berechnung ist doch richtig, oder? Danke schonmal für euere Hilfe!

Gruß Buba

P.S: Das ganze ist MySQL!
 
Probier doch mal die DATE_ADD()-Funktion, etwa:
Code:
SELECT
        DATE_ADD(CONCAT(`t`.`DATE`, " ", `t`.`TIME`), INTERVAL 1 HOUR) AS `tmstmp`
  FROM
        `mydb`.`test` AS `t`
  WHERE
        `t`.`TYPE` = "Request"
  GROUP BY
        `tmstmp`
 
Danke!

Das funktioniert! Es gibt nur eine Kleinigkeit: Ich muss jetzt dafür sorgen, dass ein INSERT-Befehl immer in der neuesten Stunde ausgeführt wird. Mit anderen Worten muss ich immer das neueste Datum mit Stunde herausfinden. Das was also bereits in der Tabelle dann steht, soll ignoriert werden und immer nur da ausgeführt werden wo die neuesten Daten da sind (das ist immer eine neue Stunde). Wie mach ich das denn jetzt?
 
Also ich habe alle Stunden neue Daten und ich muss diese Daten, die neu dazu gekommen sind immer überprüfen. Ich soll nämlich alle Request-Response-Pakete suchen, die nicht so geklappt haben. Was das ist, ist nicht so wichtig. Jedenfalls sollen immer nur die neuesten Daten betrachtet werden. Die Daten die dazu kommen sind immer innerhalb einer Stunde. Deshalb will ich auch immer nur die neuesten Daten (also z.B. 2006-09-11 11:00:00 - 2006-09-11 11:59:59). Bei den nächsten Daten die wieder kommen soll dann nur noch die neueste Stunde betrachtet werden. Mit anderen Worten, ich brauch sowas, was mir immer nur die neuesten Daten aus der Tabelle liefert.
 
Ich hab mir gerade überlegt dass das ganze ja auch einfacher gehen würde. Ich müsste mir nur immer die letzte ID der alten Daten merken und dann ab der neuen ID alles so machen wie ich es brauch. Das Problem ist jetzt nur, wie merk ich mir denn immer die letzte ID?
 
Zurück