Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : MYSQL - Datumsberrechnung (nicht so perfomant)



Jens1988
31-10-2006, 10:45
Hallo Zusammen,

ich beschäftige mich gerade etwas intensiver mit MySQL.
Und nun habe ich in einer Datenbank gewisse Daten unter anderem welche von dem Format "DATE".

Nun würde ich gerne herraus finden, wie ich per MySQL herausfinden kann, ob in den letzen 37 Tagen etwas neues passiert ist.

Gesagt getan. Nun habe ich folgendes SQL-Statement:

SELECT *
FROM daten
WHERE TO_DAYS(CURDATE()) - TO_DAYS(`datum_eins`) < 37
AND TO_DAYS(CURDATE()) - TO_DAYS(`datum_eins`) > 0;


Man muss aber doch auch noch einfacher zu dem Ergebnis kommen.

Rechnung: heutigesDatum - DatumAusDerDatenbank = Anzahl der Tage (positive Zahl)

Klar geht mein SELECT, aber es geht bestimmt performanter.

Könntet ihr mir da eventuell weiter helfen? :)

Vielen Danke schon mal im vorraus.

Liebe Grüße

Jens1988

*edit*
Ups, die Rechtschreibfehler in der Themenüberschrift sind aber nicht gewollt *schäm*

paule
02-11-2006, 13:32
WHERE TO_DAYS(NOW()) - TO_DAYS(`datum_eins`) < 37;

sollte eigentlich reichen. Die zweite Bedingung brauchst du nur, wenn du wirklich das heutige (=0) und zukünftige Daten (>0) ausschließen willst.

Ansonsten wüßte ich nicht, wie es einfacher gehen sollte.

Grüße,
Paul

Jens1988
02-11-2006, 14:19
Danke für deine Antwort.

Es gibt da wohl eine Funtkion oder sowas für womit man Daten von einander Abziehen kann und somit die Tage erhält. Aus dem Kopf herraus müsste dass jetzt ungefähr so gehen.. TO_DAYS(SUB_DATE(CURDATE() interval TO_DAYS(`datum_eins`) Day)

Ich muss das nachher noch mal ausprobieren ;)
Ich melde mich dann wieder

Gruß Jens