mysql: CURRENT_DATE nicht verfügbar

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mysql: CURRENT_DATE nicht verfügbar

    hi!

    kann mir bitte jemand einen workaround für folgendes query anbieten:

    PHP-Code:
    SELECT `nickname`
    FROM `auth_userdata`
    WHERE date( `last_login` ) >= CURRENT_DATE 
    die variable CURRENT_DATE ist auf meiner mysql version anscheinend nicht verfügbar. ich erhalte folgende meldung retour:
    #1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '( `last_login` ) >= CURRENT_DATE' at line 3
    folgende alternative wäre mir eingefallen, damit will es aber auch nicht klappen:

    PHP-Code:
    SELECT `nickname`
    FROM `auth_userdata`
    WHERE date( `last_login` ) >= date(NOW()) 
    ergebnis:
    #1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '( `last_login` ) >= date(NOW())' at line 3
    beide queries funktionieren lokal einwandfrei (XAMPP mit mysql) 4.1.7, am webserver (all-inkl.com mit mysql 4.0.20) jedoch nicht.

    bitte um hilfe!

  • #2
    was soll denn das date da im query?
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      ich will diejenigen user anzeigen, die heute eingeloggt waren, sprich bei denen das login-datum gleich dem aktuellen datum ist. die login-daten sind im date_time format in der db abgespeichert, für den vergleich brauche ich jedoch nur das datum.

      Kommentar


      • #4
        Original geschrieben von MelloPie
        was soll denn das date da im query?
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          das date da holt mir das datum aus dem date_time string der db. klappt ja lokal wunderbar, warum am webspace nicht?
          Zuletzt geändert von php_rookie; 30.04.2005, 13:21.

          Kommentar


          • #6
            DATE() is available as of MySQL 4.1.1.
            Beantworte nie Threads mit mehr als 15 followups...
            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

            Kommentar


            • #7
              danke. um auf meine frage zurückzukommen: welche alternative bzw. workaround wäre möglich? mit time_format() funktionierts auch nicht wie erwartet....

              Kommentar


              • #8
                Wenn die Zeiten im Format datetime (YYYY-MM-DD hh:mm:ss) gespeichert sind und du nur das Datum brauchst, kannst du einfach mit substr() nur ersten 10 Zeichen nehmen.

                Gleiches erreichst du auch mit SUBSTRING(zeitspalte, 0, 10). Ob das in deiner Version verfügbar ist, mußt du mal selbst nachschlagen/versuchen.

                Schöner wärs natürlich mit DATE(zeitspalte) in der Query. Aber dein "danke" deutet wohl an, dass du MySQL <4.1.1 hast.

                Kommentar


                • #9
                  PHP-Code:
                  SELECT `nickname`
                  FROM `auth_userdata`
                  WHERE DAYOFMONTH( `last_login` ) = DAYOFMONTH(CURDATE()) 
                  Musst nur aufpassen dass da nicht z.B. noch daten von letztem monat oder so dabei sind... ansonsten z.B. DAYOFYEAR() benutzen... da haste das Prob halt nur jedes jahr
                  Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                  var_dump(), print_r(), debug_backtrace und echo.
                  Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                  Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                  Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                  Kommentar


                  • #10
                    oder TO_DAYS
                    oder DATE_FORMAT
                    oder ...
                    Die Zeit hat ihre Kinder längst gefressen

                    Kommentar


                    • #11
                      danke für die unterstützung, ich habs jetzt mal so gelöst:
                      PHP-Code:
                      SELECT `nickname`
                      FROM `auth_userdata`
                      WHERE TO_DAYS( `last_login` ) = TO_DAYS(CURDATE()) 

                      Kommentar

                      Lädt...
                      X