Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Datumsvergleich in Selectanweisung? [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Datumsvergleich in Selectanweisung?


 
Tobias
28-03-2001, 16:00 
 
Hai ,
Ist wahrscheinlich'ne ziehmlich blöde Frage, aber wie kann ich in einer 'Select Anweisung' das Datum in einer Tabelle ansprechen, welches dem aktuellen Datum am nächsten kommt? Oder noch allgemeiner : Kann mann überhaupt das Datum in einer select ... vergleichen?
Danke im Vorraus
Tobias

 
Titus
28-03-2001, 19:08 
 
klar geht das ...
alle Datensätze von heute:

$heute = date ('y-m-d');
$q = mysql_query ("select * from TABELLE where DATUM='$datum'");
while ($x=mysql_fetch_array ($q)) {
.....
}

alles in der Zukunft: ... where DATUM>'$datum'


und die Sache mit dem Minimum (dazu brauchst du in MySQL zwei Queries, wenn du's einfach haben willst):

$heute = date ('y-m-d');
// absolute Differenz zwischen angegebenem Datum und heute
$datum = "abs(to_days(DATUM)-to_days('$heute'))";

// Minimum ermitteln
$q = mysql_query ("select min($datum) from TABELLE");
$r = mysql_fetch_row($q);
$min = $r[0];
// Datensätze holen
$q = mysq-query ("select * from TABELLE where $datum=$min;");
while ($x=mysql_fetch_array ($q)) {
.....
}

 
BrainBug
29-03-2001, 08:02 
 
Moin zusammen,

Titus, du mußt aber auch erwähnen, daß dafür das Feld der DB ein Datumstyp sein muß. Falls es ein Timestamp in einem int-Feld ist, kann man mit

$heute=time();
$vergleich=mysql_query("select * from TABELLE where datumsfeld<$heute");

oder eben >$heute, wenn's in der Zukunft liegen soll. Außerdem kannst du auch leicht Zeiträume selektieren:

$heute=time();
$gestern=strtotime("-1 day");
$zeitraum=mysql_query("select * from TABELLE where datumsfeld between $gestern and $heute");

holt dir alle Einträge mit einem Datum zwischen jetzt und (jetzt - 1 Tag) sprich gestern.

Okay, soweit meine Ergänzungen...

 
Tobias
29-03-2001, 11:04 
 
Hai Jungs,
das war Super!
Hat geklappt!
Es ist übrigens ein Timestamp in einem int-Feld.
Danke nochmal!
Gruß Tobias

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:22 Uhr.