Datensätze, die nicht älter als individuelle Datensatzlebensdauer

Karli1969

Benutzer
Beiträge
8
Hallo zusammen,

wenn ich Datensätze auswählen will, die nicht älter als 7 Tage sind, dann mache ich das so:
SELECT * FROM tabelle where (datum >= CURDATE()-7)

Wenn ich jeder Datensatz eine eigene Lebensdauer hat, wie kann ich es dann anstellen, dass nur die Datensätze selektiert werden, die jünger sind, als die Lebensdauer der betreffenden Datensätze?

Vielen Dank für Eure Ideen
Karli
 
Werbung:
Vielen Dank für deine prompte Antwort.

Also das Datum ist ein timestamp und die Lebensdauer sollen Tage sein.
Ich habe mal das hier probiert:
SELECT * FROM tabelle where (datum >= (CURDATE()-lebensdauer)) aber das wurde wohl vollkommen ignoriert. Es wurden alle Datensätze angezeigt.
 
Code:
test=# create table karli(id int, datum date, lebensdauer int);
CREATE TABLE
test=*# insert into karli values (1, '2017-01-01', 10);
INSERT 0 1
test=*# insert into karli values (2, '2017-02-01', 10);
INSERT 0 1
test=*# select * from karli where datum + lebensdauer * '1day'::interval > current_date;
 id |  datum  | lebensdauer
----+------------+-------------
  2 | 2017-02-01 |  10
(1 Zeile)

test=*#

sollte das gewünschte tun, oder? (PostgreSQL, ich mache nix anderes)
 
Werbung:
Dann müsste ich den Timestamp in einen anderen Datentyp konvertieren.
Nur wenn es gaaar nicht anders geht.

Das komische ist ja, dass das hier:

SELECT * FROM tabelle where (datum >= CURDATE()-7)

einwandfrei funktioniert. Nur die Datensätze, die jünger als 7 Tage sind, werden angezeigt. (in einem php-Script mit einer MySQL-Datenbank)
 
Zurück
Oben