PDA

Vollständige Version anzeigen : Abfrage nach Datum


didi01
24.06.2002, 12:44
Hi,
ich habe folgendes Problem.
Datenbank: SQL-Server 6.5
Scriptsprache: PHP4
Über eine ODBC Verbindung möchte ich in einer Tabelle Daten suchen die einem bestimmten Datum entsprechen. Der Datentyp des Datumsfeldes in der DB ist Datetime. Der User gibt das Datum in einem Fromularfeld folgendermaßen ein:
2002-06-24

mit folgendem SQL Befehl im PHP Script versuche ich die Daten herauszusuchen.

$sql = "SELECT * FROM ikie.lieferschein WHERE Prod__Datum = '$datum'";

Dann bekomme ich folgende Fehlermeldung

Warning: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Umwandlung von CHAR in DATETIME führte zu einem DATETIME-Wert außerhalb des gültigen Bereichs., SQL state 22008 in SQLExecDirect in d:\webease\software\auftragsbearbeitung\3_1_1_dnat.php on line 72

Wenn die gleiche Abfrage direkt am SQL Server mache und das Datum in der WHERE Klausel eintrage wie es in der PHP Variablen steckt, funktioniert es einwandfrei.

SELECT * FROM ikie.lieferschein WHERE Prod__Datum = '2002-06-24'";

Hat jemand eine Idee was ich da anders machen kann?

Vielen Dank im Voraus
Gruß
didi01

cheerookee
27.06.2002, 09:25
Liegt wahrscheinlich am Datumsformat.
Probier mal folgendes:

select * from Tabelle where Convert(varchar, Tabelle.LiefDatum, 104) = '22.05.2002'

So wird das Datum als String im deutschen Datumsformat mit einem String verglichen.

Jetzt musst Du nur noch Dein $Datum mit dem Convert() - Format abgleichen. Dabei sollte Dir die SQL- Analyzer Hilfe weiterhelfen; dort werden alle Datumsformate erklärt.

Gruss

Cheerookee

didi01
28.06.2002, 07:54
Hi,
vielen Dank, mit der convert Funktion hat es funktioniert.
Gruß
didi01