sql zeitproblem

bondiblue

bondiblue

Aktives Mitglied
Thread Starter
Dabei seit
27.10.2001
Beiträge
259
Reaktionspunkte
0
hallo

in meiner datenbank vermerke ich projekte mit start_day und end_day (nach end_day wird inaktiv). jetzt möchte ich alle projekte die in 4 monaten enden abfragen. wenn ich end_day minus akt_day (als MONTH) abfrage und das ergebnis=4 setzte dann bekomme ich mein ergebnis, jedoch mit dem problem dass der jahreswechsel nicht berücksichtigt wird. hat jemand eine lösung parat?

danke
 
So auf Anhieb würde ich die gespeicherten Daten in den Unix
Timestamp umwandeln. Dann kannst Du beide Werte einfach von
einander abziehen. Et voliá ...

Wenn ich zu Hause bin, schaue ich noch mal in meinem schlauen
Büchlein. Dort wird glaube ich etwas zu Deinem Problem geschrieben.


Gruß
Delmar


[edit:] Schöne Signatur hast Du da. Gefällt!
 
Tja ... ich denke, dass die einzige Möglichkeit darin besteht, die beiden Daten
aus der DB zu lesen und mittels "mktime()" in einen Unix-Timestamp umzuwandeln.

Wenn Du noch Fragen hast, einfach melden. ;)


Gruß
Delmar
 
hallo

DANKE erstmal für die nette antwort :)

hier ein beispieleiner select anweisung:


SELECT prj_form.id, prj_form.prj_start,prj_form.prj_end, MONTH(prj_form.prj_end-GetDate()) as Monate_bis_prj_end
FROM prj_form
WHERE GetDate()
BETWEEN prj_form.prj_start
AND prj_form.prj_end
AND
MONTH(prj_form.prj_end-GetDate())=4


also wichtig ist die letzte zeile. die funktioniert nur solange es kein jahreswechsel zwischen den monaten liegt... beispiel wir haben august... dann würde ich laut letzte zeile alle projekte die dezember als endatum haben rausbekommen da dezember-august=4 (12-8=4). bei jahreswechsel ist es natürlich falsch... z. B. wir haben dezember(also12) und die rechnung wäre 12-4=7
hoffe du hast es verstanden ;)

lg

bondiblue
 
N'Abend,

ich habe gerade mal die MySQL Seite durchstöbert und bin auf Folgendes
gestoßen:

PERIOD_DIFF(P1,P2)
Returns the number of months between periods P1 and P2. P1 and P2 should
be in the format YYMM or YYYYMM. Note that the period arguments P1 and
P2 are not date values:
mysql> SELECT PERIOD_DIFF(9802,199703);
-> 11


Sollte doch eigentlich helfen, oder?! Ich werde es mal bei mir ausprobieren
und dann berichten.


Gruß
Delmar
 
Ich habe hier noch mal die komplette Seite bzgl. Datums und Zeitfunktionen
für MySQL in deutsch.

Stehen einige sehr interessante Befehle drin, die ich auch noch nicht kannte.
Viel Spaß beim Probieren ... sonst einfach melden. ;)


Gruß
Delmar
 
Zuletzt bearbeitet von einem Moderator:
hallo delmar

danke für deine mühe
 
Hast Du es denn jetzt hinbekommen?
 
Zurück
Oben Unten