Bernard: MySQL Datumsabfrage (spinnt!)

Hallo !

ich habe folgendes (unlogisches) Problem:

SELECT Preis1
FROM   WH_Preis
WHERE ArtNr   = 'HDS5106'
AND GueltBis >= CURRENT_DATE
AND GueltAb  <= CURRENT_DATE;

MySQL Tabelle WH_Preis:
Artnr VARCHAR (Inhalt: HDS5106)
GueltAb DATE (Inhalt:  2001-07-01)
GueltBis DATE (Inhalt:  2001-12-31)

Alle Felder usw. sind richtig geschrieben. Die Abfrage müsste doch funzen !!!! Lass ich eine Datumsabfrage (egal ob GueltAb oder Bis)weg funktioniert es.

Hilfe !!!

Gruss
Bernard

  1. Hi,

    SELECT Preis1
    FROM   WH_Preis
    WHERE ArtNr   = 'HDS5106'
    AND GueltBis >= CURRENT_DATE
    AND GueltAb  <= CURRENT_DATE;

    was mir spontan einfällt: Kennt MySQL eigentlich BETWEEN?

    ...AND CURRENT_DATE BETWEEN GueltAb AND GueltBis

    Was liefert bei Dir eigentlich CURRENT_DATE?

    Cheatah

    1. Hallo!

      was mir spontan einfällt: Kennt MySQL eigentlich BETWEEN?

      JA!

      Was liefert bei Dir eigentlich CURRENT_DATE?

      Es liefert das aktuelle Datum, CURDATE() = CURRENT_TIME(). YYYYMMDD oder YYYY-MM-DD wird zurück geliefert, je nach dem wie man es angibt, ob als String oder numersich.

      MfG, André Laugks

      1. Re!

        Es liefert das aktuelle Datum, CURDATE() = CURRENT_TIME(). YYYYMMDD oder YYYY-MM-DD wird zurück geliefert, je nach dem wie man es angibt, ob als String oder numersich.

        HAtte ich gestern Abend doch das richtige Gefühl, daß was nicht gestimmt hat! :-)

        CURDATE() = CURRENT_DATE()
        CURTIME() = CURRENT_TIME()
        CURRENT_TIMESTAMP() = NOW()

        CURTIME() -> "17:15:50"
        CURTIME() + 0 -> 171550

        MfG, André Laugks

  2. Hallo!

    Alle Felder usw. sind richtig geschrieben. Die Abfrage müsste doch funzen !!!! Lass ich eine Datumsabfrage (egal ob GueltAb oder Bis)weg funktioniert es.

    Hast Du Dir mal mit mysql_error() Fehler ausgeben lassen? Hast Du es mal auf der Shell versucht, wenn Dein Provider es zulässt? Wenn es lokal läuft, versuche es mal! Ich mache das immer so...!

    MfG, André Laugks

  3. hallo

    SELECT Preis1
    FROM   WH_Preis
    WHERE ArtNr   = 'HDS5106'
    AND GueltBis >= CURRENT_DATE
    AND GueltAb  <= CURRENT_DATE;

    CURRENT_DATE kenn ich grad nicht, könnts nicht eher CURRENT_DATE()
    heissen (man beachte die klammern)

    ich hab jedenfalls die funktion NOW() dafür benutzt, allerdings liefert die auch die uhrzeit.

    vielleicht hilfts,
    Michael