Zu deinem sporadischen SQL-Fehler:
Andere Funktionen erwarten vollständige Daten und geben NULL zurück, wenn unvollständige Daten übergeben werden. Hierzu gehören Funktionen, die Datumsberechnungen durchführen oder Teile von Datumsangaben Namen zuordnen
Ich vermute einmal, daß "date" ein vollständiges Datumsformat erwartet. Also YYYY-MM-DD mindestens. Sollte ein Datum nicht vollständig sein, weil zum Beispiel der Tag fehlt, wäre dies der Fehler.
Schau mal in die Tabelle ob es solche Datumsangaben dort gibt. Wie Mysql auf ein falsches Datum (2009-02-31) reagiert weiß ich nicht.
Bei deiner Anzeige 1970 liegt es am verwendeten Wert für Date.
Mit
PHP-Code:
$MVParam_tourdaten_monat = date("M",$mysqldatum);
holst du ja nur den Monat. Ich denke mal es war ein Schreibfehler hier im Forum und du meintest "Y" um das Jahr zu holen.
Da in Mysql das Datum YYYY-MM-DD ist vermute ich, daß du für date() den timestamp falsch übermittelst. In solchen Fällen bringt date() oft 1970 (Anfang der Unixzeitrechnung).
Ist mir auch schon mal passiert als ich ein Datum generell ausgeben lassen hatte ohne zuvor den Wert auf NULL zu prüfen.
date("d.m.Y",'') bringt das erste Datum der Unixzeitrechnung. GEnauen Tag und Monat hab ich nicht im Kopf und bin zu faul zu suchen. Würde man nur "Y" ausgeben lassen wäre es jedenfalls 1970. :)
Ich hoffe es hilft etwas bei der Fehleranalyse