Nur Datensätze wählen, die in einem Zeitraum liegen

Alexio Vay

Grünschnabel
Hallo,

ich habe die Spalte `valid` und `expires` in DATETIME gespeichert und möchte nur Datensätze anzeigen lassen, die in diesem Zeitraum liegen. (Es geht um ein Gutscheinportal.)

Wie kann ich das am Besten machen?

Ich habe momentan noch diese Abfrage:

PHP:
SELECT 

id,title, valid, expires,
TIMESTAMPDIFF(SECOND,NOW(),`valid`) AS valid_sec, 
TIMESTAMPDIFF(SECOND,NOW(),`expires`) AS expires_sec

FROM coupons

WHERE 

TIMESTAMPDIFF(SECOND,NOW(),`valid`) <= 0
AND
TIMESTAMPDIFF(SECOND,NOW(),`expires`) > 0

So klappt es auch, aber ich bin mir nicht sicher, ob das so gut und effizient gelöst ist, weshalb ich mich über Ratschläge freuen würde!

Vielen Dank.

LG,

Alex
 
Hallo,

ich habe die Spalte `valid` und `expires` in DATETIME gespeichert und möchte nur Datensätze anzeigen lassen, die in diesem Zeitraum liegen. (Es geht um ein Gutscheinportal.)

Sorry, das versteh ich nicht.
valid ist 'Gültib bis'
expires ist 'Läuft ab am'


Du kannst den WHERE glaub vereinfachen
SQL:
WHERE
    NOW() BETWEEN valid AND expires
 
Zuletzt bearbeitet von einem Moderator:
Ah, dankeschön. Laut Wörterbuch heißt valid nur "gültig" und nicht "gültig bis"? Ich weiß nicht wie ich den Spaltennamen sonst nennen sollte.
 
Jepp, ist ohne 'bis'. Hast recht.
valid_from währe ein guter Name....

valid_from und valid_to währen die 2 Namen die ich nehmen würde
 

Neue Beiträge

Zurück