MySql Datum richtig Erkennen

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

  • MySql Datum richtig Erkennen

    Hallo@all,

    ich möchte in einem script von mir eine Datums abfrage der MySql Datenbank machen.

    Es soll möglich sein, Aufgaben nach einem Datum anzeigen zu lassen.

    Deswegen hab ich in der MySql Datenbank die 2 Felder, datums (für Datum start) und datume (für Datum ende) mit varchar(20) erstellt.

    die abfrage hab ich so geschrieben:

    PHP-Code:
    $timestamp time(); 
    $datum date("d.n.Y",$timestamp); 

    $aktion_daten_filtern mysql_query("SELECT * FROM aktion WHERE datums <= '$datum' ORDER BY datums DESC"); 
    Mein Problem: Er erkennt zwar das jetzt die Aktuelle Meldung angezeigt werden darf.
    sagen wir vom 17.07.2006 bis 31.08.2006 soll er mir die Daten Filtern und Anzeigen. Allerdings bekommt er es nur einen Monat hin. (z.B. wird die Meldung nur bis zum 31.07 Angezeigt.) Und andere Daten die schon angefangen haben werden mal nicht angezeigt?!

    Meine vermutung liegt darin, das er ab denn Monat nicht mehr richtig rechnet und vergleicht bei der abfrage kennt jemand einen Super Lösungsvorschlag?

    würde mich um Hilfe sehr freuen,

    viele Grüße BFreakout

  • #2
    Mach dich mit den Datumfunktionen von MySQL vertraut: http://dev.mysql.com/doc/refman/5.0/...functions.html

    Nutze FeldTyp DATE oder DATETIME

    Dann kann man select folgendermaßen machen:

    Code:
    SELECT * FROM tab WHERE 
    mein_datum = now()
    Damit bekommst du alle Einträge von heute, wenn du DATE benutzt.


    //edit:
    Code:
    SELECT * FROM tab WHERE
    (from <= now() OR ISNULL(from)) AND
    (to >= now() OR ISNULL(to))
    Damit kannst du schauen ob ein Eintrag gültig ist - Vorraussetzung die Datumsfelder müssen "Allow NULL" sein und wenn nur ein Enddatum gebraucht wird darf das Startdatum nicht gefüllt sein.
    Zuletzt geändert von prego; 17.07.2006, 16:33.

    Kommentar


    • #3
      oder es liegt am ISO-Format?

      Oder es könnte daran liegen das MySql das Datum im ISO-Format besser erkennt??

      also wenn das datum dann normal gespeichert wird wie mysql das eigentlich kennt... z.B. (2006-14-20)??

      weil ich speichere das datum wie wir es kennen (20.14.2006)...

      er hat ja nur probleme ab denn (.) stellen also mit dem nächsten Monaten... obwohl er auch wirklich dann nur die Daten anzeigt die exakt dem monat entsprechen... er zeigt nicht an wenn z.B. der 17.7. ist und am 01.8 was angezeigt werden soll aber er zeigt es dann nicht mehr an wenn dann der 01.9 ist... obwohl es dann bis zum 31.9 angezeit werden soll...

      ich hoffe du verstehst was ich mein ^^

      Kommentar


      • #4
        Um die Datumfunktionen von MySQL nutzen zu können MUSST du deine Datumswerte in Datums-Feldern ablegen.

        Um aus einem DateTime Feld zb das "deutsche" Datum rauszuholen würdest du folgendes machen:

        SELECT
        DATE_FORMAT(datum, '%d.%m.%Y') AS mein_datum
        FROM tab1

        Kommentar


        • #5
          Danke dir.. mit dem now() hat mir sehr gut geholfen...

          und ich musste die tabellen in date format ändern... und wie es aussieht funktionierts jetzt auch...

          Danke noch mal

          Kommentar

          Lädt...
          X