Mailinglisten-Archive |
Aloha, > Von: Reinhold Riedersberger[SMTP:mailnews_(at)_riedersberger.de] > > Ich habe Probleme mit der folgenden Abfrage, bei der "Auslaufdatum" > und "Benachrichtigungsdatum" MySql Datumsfelder sind. > Ah, und welche Probleme hast du genau? > $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ß. 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. Außerdem find ich in der mysql-Doku keine funktion time() und strtotime und vermutlich wird die auch nciht mit einem Datumsfeld kompatibel sein. Schau erst mal in http://www.mysql.com/documentation/mysql/bychapter/manual_Reference.html#Dat e_and_time_functions 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
php::bar PHP Wiki - Listenarchive