Mailinglisten-Archive |
folgender select ausdruck funtzt bei mir: select * from tblData where TO_DAYS(now()) - TO_DAYS(changed) <= 30 das setzt voraus, dass in der tabelle tblData ein feld namens "changed" exisitiert, dieses feld ist als timestamp(14) definiert. ein hinweis: ein feld timestamp(14) enthaelt ein datumsfeld in einem "internen" mysql format (YYYYMMDDHHMMSS) naeheres auf seite 108ff der mysql-doku. ein timestamp-feld wird automatisch auf die aktuelle uhrzeit gesetzt wenn - das feld nicht in einem insert oder load data ausdruck gesetzt ist. - das feld nicht in einem update ausdruck gesetzt ist, und wirklich ein feld im datensatz geaendert wird. - das feld auf NULL gesetzt wird. hinweis: das automatische update betrifft nur das erste timestamp feld in der tabelle. ich verwende z.b. 3 timestamp-felder in meiner db. das erste heisst changed, das zweite eintrag und das dritte freigabeDate. bei einem update des datensatzes wird somit automatisch das feld "changed" auf die aktuelle uhrzeit gesetzt. beim ersten erzeugen des datensatzes verwende ich sowas wie: INSERT into tblData ( uid, name, plz, ort, email, eintrag ) VALUES ( '$cgi_uid', '$cgi_nachname', '$cgi_plz', '$cgi_ort', '$cgi_email', NULL )~; meine tabelle sieht aus: Table: tblData +--------------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+---------------+------+-----+---------+-------+ | uid | varchar(11) | | PRI | | | | name | varchar(80) | | MUL | | | | plz | varchar(5) | YES | | | | | ort | varchar(80) | YES | | | | | changed | timestamp(14) | YES | | | | | eintrag | timestamp(14) | YES | | | | | freigabe | set('0','1') | YES | | 0 | | | email | varchar(80) | YES | | | | | freigabeDate | timestamp(14) | YES | | | | +--------------+---------------+------+-----+---------+-------+ bei einem insert wird das feld changed automatisch auf now() gesetzt, und eintrag erhaelt ebenfalls das aktuelle datum, da es auf NULL gesetzt wird. bei einem update brauch ich mich beim feld "changed" wieder um nichts kuemmern, da auch dieses automatisch auf die aktuelle uhrzeit gesetzt wird. somit kann ich mit oben aufgefuehrtem sql-ausdruck einfach nachsehen, welche datensaetze sich in den letzten x tagen gaendert haben... mfg Markus Rietzler * Wuppertal-Forum | Wuppertal-Navigator * http://www.wuppertal-navigator.de * eMail: markus.rietzler_(at)_wuppertal-navigator.de Ronsdorfer Strasse 14 Fon: 0202.42 08 30 42119 Wuppertal Fax: 0202.242 24 66 Mobil: 0171.480 77 82 > -----Original Message----- > From: Frank Bettenworth [mailto:fbettenw_(at)_techfak.uni-bielefeld.de] > Sent: Sunday, February 13, 2000 7:24 PM > To: MySQL-Mailinglist > Subject: Datumsberechnung > > > Hallo Leute, > ich habe in meiner Datenbank ein Feld mit Datumseinträgen. Nun möchte > ich allerdings mir nur die raussuchen, die kleiner gleich Systemdatum-30 > Tage alt sind. Oder anders ausgedrückt alle die vom heutigen Tag an > nicht älter als 30 Tage alt sind. Wie mache ich das am besten??? Habe > schon einiges ausprobiert, was in der Doku stand, hat aber nicht so > recht funktioniert. > > Gruß > > Frank > > --- > *** Abmelden von dieser Mailingliste funktioniert per E-Mail > *** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe > --- *** Abmelden von dieser Mailingliste funktioniert per E-Mail *** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe
php::bar PHP Wiki - Listenarchive