Vinzenz Mai: mysql: feld aus datenbank für datumsfunktion verarbeiten?

Beitrag lesen

Hallo

das hab ich auch gemacht! in einem feld steht ein datum und in einem weiteren die anzahl der tage an denen das gewinnspiel vor dem enddatum abläuft!

Lesetipp: Tipps für Fragende

Bei Fragen zu Datenbankabfragen (SQL-Statements) ist es in aller Regel eine gute Idee, die relevanten Tabellen mit den relevanten Spalten vorzustellen, mit ein paar Beispieldatensätzen sowie dem gewünschten Resultat - und der Begründung (im Klartext, nicht in SQL), warum dieses das gewünschte Resultat ist.

Ich versuchs mal an einem Beispiel:
Tabelle gewinnspiel

ablaufzeit | enddatum
---------------------------------
       10  | 2008-04-26 12:00:00
        8  | 2008-04-20 00:00:00

Nun liefert Dir

SELECT             -- Gib mir  
    enddatum,      -- das Enddatum  
    ablaufzeit,    -- und den Ablaufzeitraum in Tagen  
                   -- sowie den daraus resultierenden Ablaufzeitpunkt  
    DATE_SUB(enddatum, INTERVAL ablaufzeit DAY) ablaufzeitpunkt  
FROM  
    gewinnspiel

die Ablaufzeitpunkte der diversen Gewinnspiele

Willst Du nun überprüfen, ob der Ablaufzeitpunkt bereits vorbei ist, so nutze die entsprechende WHERE-Klausel. Beachte, dass Du Aliasnamen nicht in der WHERE-Klausel verwenden kannst.

SELECT  
    enddatum,  
    ablaufzeit,  
    DATE_SUB(enddatum, INTERVAL ablaufzeit DAY) ablaufzeitpunkt  
FROM  
    gewinnspiel  
WHERE  
    -- wobei der Ablaufzeitpunkt zum jetztigen Zeitpunkt bereits verstrichen ist.  
    DATE_SUB(enddatum, INTERVAL ablaufzeit DAY) < NOW()  

Freundliche Grüße

Vinzenz