[SQL allgemein] Problem mit Datumsformat

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

  • [SQL allgemein] Problem mit Datumsformat

    Hallo zusammen,

    habe ein Problem.
    MYSQL Datenbank mit Date Format %Y-%m-%d

    Wandel jetzt das Datum über Befehl "date_format(`t_von`,'%d.%m.%Y')" in gewünschtes Format dd.mm.YYYY um damit ich aus einen Texfeld in einem PHP Script einen Select aufbauen kann.

    Jetzt ergibt sich folgender Select:

    SELECT *
    FROM `cn_termine`
    WHERE date_format( `t_von` , '%d.%m.%Y' ) > '30.03.2006'
    LIMIT 0 , 30

    Ergebnis:

    t_nr t_kdnr t_art t_name t_ort t_von t_bis t_bezeichnung t_text t_bild t_status
    1 100000 10 s Tutzing 2005-10-31 2005-11-14 Rathausaustellung Tutzing IIIIIIIIIIIIII 0
    3 100005 10 Mühlich Traubing 2006-03-31 2006-04-10 Gastausstellung LKM Wie jedes Jahr begrüßen wir Sie zur Ausstellung bild.jpg 0

    Wie Ihr sehen könnt ist das eine Datum `t_von`der 31.10.2005

    Kann mir einer erklären warum dieser Datensatz mit angezeigt wird?
    Wenn ich mit '=' suche bekomme ich exakt den richtigen treffer.

    Wäre sehr dankbar für Hilfe. Weiß nicht mehr weiter.
    Vielleicht hat irgend jemand auch eine einfachere Art das Datumsformat umzuwandeln.

    Danke im voraus.

    Grüße

    Kaos2000

  • #2
    Wozu gibts wohl das Format DATETIME?

    Lass das date_format weg und prüfe gegen einen Y-M-D-String, und schon klappts.

    Kommentar


    • #3
      Danke für die Antwort.
      Das Problem ist aber das ich von einer Webseite aus das Feld mit einem "dd.mm.YYYY" String befülle und mit diesem String am liebsten gleich weiter arbeiten würde.
      Ansonsten müßte ich das Format erst über einen String Befehl umwandel oder denke ich momentan total falsch.
      Ist doch aber auch sehr komisch das bei dem "=" Zeichen das Datum richtig interpretiert wird und bei > auf einmal ein Datum mit aus dem Jahr 2005 mit auftaucht.

      Grüße
      kaos2000

      Kommentar


      • #4
        Ist doch aber auch sehr komisch das bei dem "=" Zeichen das Datum richtig interpretiert wird
        Nö. String = String : Kein Problem. String > String: Unvorhersehbare Ergebnisse.

        Um die eine Umwandlung kommst Du nicht drumrum. Rechnen kann mySQL nur mit nativen DATETIME-Werten.

        Wenn Du einen Moment wartest, hab ich Dir eine Funktion dazu. *kram*

        PHP-Code:

        // germandate2mySQLDate:
        // Nimmt einen Datumsstring im Format 
        // TT.MM.JJJJ an und gibt einen String mit dem mySQL-Pendant 
        // im Format JJJJ-MM-TT zurück.
        // Kann mit ein- und zweistelligen Tagen und Monaten umgehen
        // (also z.B. "1.5.2005")

        function germandate2mySQLDate($date)
        {

        $elements explode(".",$date);
        $result mktime(0,0,0,$elements[1],$elements[0],$elements[2]);

        return 
        date ("Y-m-d",$result);


        grad umgeschrieben (Original hieß germandate2timestamp), aber müßte laufen.
        Zuletzt geändert von pekka; 02.04.2006, 23:52.

        Kommentar


        • #5
          Re: [SQL allgemein] Problem mit Datumsformat

          Original geschrieben von kaos2000
          Wie Ihr sehen könnt ist das eine Datum `t_von`der 31.10.2005

          Kann mir einer erklären warum dieser Datensatz mit angezeigt wird?
          Du hast '30.03.2006' mit '31.10.2005' verglichen.

          Kannst du mir erklären, was dir daran unklar ist, dass das erste Zeichen '3' bei beiden gleich ist, und das nachfolgende zweite Zeichen '1' des zweiten Wertes größer ist als die '0' des ersten ...?
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Danke Pekka

            Danke vielmals für deine Hilfe , Pekka!
            Funktioniert einwandfrei. Hat mir sehr geholfen

            Grüße

            Kaos2000

            Kommentar

            Lädt...
            X