Monatsdifferenz mit mySQL

Hallo,

ich eine tabelle mit eintrittsdatum und Austrittsdatum. Jetzt möfchte ich ermitteln wieviel Eintröge es gibt die xy Monate bis xy Monate Differenz der beiden Dtumswerte haben. Das habe ich ausprobiert abe rgeht nicht:( Wie gehts richtig?

$query = " SELECT
*,
PERIOD_DIFF(t1.maaustritt,t1.maeintritt)AS diff
FROM
03_mitarbeiter AS t1
WHERE
PERIOD_DIFF(t1.maeintritt,t1.maaustritt) < '".$zeitraum_bis."'
AND
PERIOD_DIFF(t1.maaustritt,t1.maeintritt) >= '".$zeitraum_von."'
AND
PERSTATUSID = 3
";
 
Moin Notebook20000,

diese Funktion PERIOD_DIFF() erwartet als Parameter keine Datumswerte, sondern Zahlen in der Form YYMM (9912 für Dez. 1999) bzw. YYYYMM (200002 für Feb. 2000) AFAIK.

Ich kann von hier aus nicht erkennen, ob du das Ein/Austrittsdatum in dieser irrwitzigen Form gespeichert hast, aber ich hoffe mal, das nicht.

Falls also Datumswerte in den beiden Datumsfeldern vorliegen, wäre die stressärmste Variante, das mit der allgemein üblichen DateDiff()-Function abzufackeln, die dann allerdings die Differenz in Tagen berechnet.

Das wiederum sollte für durchschnittlich ausgebildete Manager oder Personalsachbearbeiter im Bereich des Möglichen liegen, 3 Monate oder ein halbes Jahr, ja selbst 2 Jahre überschlägig in Tagen auszudrücken.

Gruss
Biber2
 
Zuletzt bearbeitet:
poste doch mal die datentypen der spalten (was ja wohl das wichtigste ist) vllt kann man das mit einem group geschickt lösen
 
ich würde mal folgendes vorschlagen:

Code:
SELECT DATEDIFF(t1.maeintritt,t1.maaustritt) as diff FROM 03_mitarbeiter AS t1 WHERE DATEDIFF(t1.maeintritt,t1.maaustritt) BETWEEN $von and $bis

alternativ:

Code:
SELECT DATEDIFF(t1.maaustritt,t1.maeintritt) as diff FROM 03_mitarbeiter AS t1 WHERE DATEDIFF(t1.maaustritt,t1.maeintritt) BETWEEN $von and $bis

ich weiß jetzt nicht wieherum datediff() rechnet :(
 
Zurück