Gentagne events beregning i MySql
Hejsa.Jeg prøver at finde ud af om en event rammer dags dato udfra start dato, interval og interval type.
f.eks.
SELECT
mm.*,
mm_recurrence_settings.*,
CASE
WHEN mm_recurrence_settings.mm_reoc_interval_type = 1 THEN DATE(DATE_ADD(mm_recurrence_settings.mm_reoc_start_date, INTERVAL mm_recurrence_settings.mm_reoc_interval HOUR))
WHEN mm_recurrence_settings.mm_reoc_interval_type = 2 THEN DATE(DATE_ADD(mm_recurrence_settings.mm_reoc_start_date, INTERVAL mm_recurrence_settings.mm_reoc_interval DAY))
WHEN mm_recurrence_settings.mm_reoc_interval_type = 3 THEN DATE(DATE_ADD(mm_recurrence_settings.mm_reoc_start_date, INTERVAL mm_recurrence_settings.mm_reoc_interval WEEK))
WHEN mm_recurrence_settings.mm_reoc_interval_type = 4 THEN DATE(DATE_ADD(mm_recurrence_settings.mm_reoc_start_date, INTERVAL mm_recurrence_settings.mm_reoc_interval MONTH))
WHEN mm_recurrence_settings.mm_reoc_interval_type = 5 THEN DATE(DATE_ADD(mm_recurrence_settings.mm_reoc_start_date, INTERVAL mm_recurrence_settings.mm_reoc_interval YEAR))
END as newDate
FROM
mm
LEFT JOIN mm_types USING (mm_type_id)
LEFT JOIN mm_recurrence_settings USING (mm_id)
Det virker sådan ok... næsten.. måske..
Det giver mig den næste nærmeste event dato fra startdatoen. Men ikke gentagelser frem til dags dato.
F.eks. et event startende 2012-01-31 og som kører hver 2 uge om torsdagen. Der får jeg - med ovenstående - 2012-02-16. Ville gerne have at den regnede sig frem til hver 2 uge om torsdagen - i denne eller næste uge (i forhold til d.d.)
Nogen der forstår hvad jeg siger ;-) og evt. har mulighed for at hjælpe mig på vej.
/Lars