echo $begrüßung;
$data = mssql_query ("SELECT CONVERT(varchar(10), dbo.tblHistory.CreateDate, 104) AS datum FROM dbo.tblHistory ".
"AND (datum between '$von' and '$bis'");
Ob MS-SQL das auch nicht mag, weiß ich nicht, aber andere DBMS mögen es nicht, wenn man in der WHERE-Klausel mit den Alias-Namen arbeitet. Diese werden erst nach dem Ermitteln des Ergebnisses den Spalten hinzugefügt. Vorher muss man auf den originalen Spaltennamen zugreifen oder den Ausdruck, den man zu aliasen gedenkt, noch einmal hinschreiben.
Nichtsdestotrotz: Was steht in $data nach der Abfrage drin? Lass dir das Ergebnis mit var_dump($data) ausgeben und vergleiche es mit der Funktionsbeschreibung im Handbuch.
echo "$verabschiedung $name";