Mailinglisten-Archive |
Hallo Mathias, am Freitag, 12. Juli 2002 um 17:29 schrieben Sie: >> Ich habe Probleme mit der folgenden Abfrage, bei der "Auslaufdatum" >> und "Benachrichtigungsdatum" MySql Datumsfelder sind. >> > Ah, und welche Probleme hast du genau? Eigentlich nur eine - Sie funktioniert nicht. >> $res = mysql_db_query($dbDatabase, "select * from h_firmenstamm where >> strtotime(Auslaufdatum)-20*86400) < time() && >> empty(Benachrichtigungsdatum)"); >> > Das Query ist nicht sonderlich performant, da > für jede Zeile der Datenbank die Funktion > strtotime ausgeführt werden muß. Danke für den Hinweis, den ich im Hinterkopf behalten werde. > Davon abgesehen daß: > Note: This function has been deprecated since PHP 4.0.6. Do not use this > function. Use mysql_select_db() and mysql_query() instead. Hoops, war mir nicht bekannt. Woher bekommt man solche Infos, wenn nicht von Dir? > Außerdem find ich in der mysql-Doku keine funktion time() und strtotime und > vermutlich > wird die auch nciht mit einem Datumsfeld kompatibel sein. Handelt sich eigentlich mehr um php-Funktionen. Und mit dem Einbinden derselben habe ich so meine Probleme. > Schau erst mal in > http://www.mysql.com/documentation/mysql/bychapter/manual_Reference.html#Dat > e_and_time_functions Vielen Dank für den Hinweis. Habe ich soeben gemacht. Und es sieht ganz so aus als sei bereits das Beispiel dort die von mir gesuchte Lösung. > Sinnvoller wäre ein Query in der Art (wenn z.b. 1 Tag abgezogen werden soll > .... where (auslaufdatum) < DATE_ADD(CURDATE(), INTERVAL 1 DAY) > Mysql ist nämlich hinreichend intelligent, festzustellen, daß dann > der rechte Teil des Vergleiches konstant ist, und merkt sich das > bei den ganzen Vergleichen. > Grüße, Mathias Vielen Dank für Deine hilfreiche Unterstützung. Du machst Dir kein Bild wie viel (kostbare Lebens)Zeit man mit solch kleinen Problemen verbringen kann, wenn man nicht weiß (wußte) wo man nachschlagen muß. -- Mit freundlichen Grüssen Reinhold Riedersberger
php::bar PHP Wiki - Listenarchive