Ergebnis 1 bis 9 von 9

Thema: Problem bei Datums-Vergleich

  1. #1
    Azubi(ne)
    Registriert seit
    16.09.2008
    Beiträge
    54
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Problem bei Datums-Vergleich

    Hallo,
    ich habe ein Problem bei meiner Suchen-Funktion hinsichtlich der Datumsuche.

    Wenn ich z.b. als Datum den 31.03.2009 drin habe und suche nach >= 30.03.2009 findet er den Eintrag einwandfrei -
    suche ich jedoch nach <=01.04.2009 kann er den Eintrag vom 31.03.2009 nicht finden (findet dafür aber bspw. Einträge vom 01.03.2009)

    Grundproblem: Das "Datum" ist ein 'String' - kein 'date', die Einträge werden jedoch über 'strtotime' angezeigt bzw. ausgegeben:

    PHP:{echo date("d.m.Y", strtotime($row["a_dat"]));}
    Gesucht und verglichen werden sie mit folgendem Code:
    PHP:if($a_dat1!="" && $a_dat2!="" ){$where .= "and a_dat >= 'a_dat1' and a_dat <= 'a_dat2'"; }
    Frage: Kann/Muss ich in dem o.g. suchen/vergleichen-Code das "strtotime" irgendwie mit reinbringen,
    sodass er keine 2 Strings vergleicht sondern 2 Datums/Daten/Datümmer?
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Bandit
    Gast

    Standard AW: Problem bei Datums-Vergleich

    Zitat Zitat von Lavingstar Beitrag anzeigen
    Grundproblem: Das "Datum" ist ein 'String' - kein 'date'
    Und warum bringst du das nicht erst mal in Ordnung, anstatt immer wieder mit diesen Problem zu kämpfen? Du schraubst an der falschen Stelle rum.

  3. #3
    Azubi(ne)
    Themenstarter

    Registriert seit
    16.09.2008
    Beiträge
    54
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Problem bei Datums-Vergleich

    Zitat Zitat von bandit600 Beitrag anzeigen
    Und warum bringst du das nicht erst mal in Ordnung, anstatt immer wieder mit diesen Problem zu kämpfen? Du schraubst an der falschen Stelle rum.
    Ich habs mal probiert und das Feld "a_dat" von VARCHAR auf DATE umgestellt, aber danach hat das Datum gar nicht mehr gestimmt und ich weiss leider momentan nicht, wie ich es anstellen kann, dass das Datum dann nicht als 2009-10-02 sondern als 10.02.2009 angezeigt wird.
    Ich weiss zwar dass es einen Befehl date(d.m.Y) gibt aber den hab ich entweder nicht richtig implementiert oder ich hab noch irgendwas vergessen ... :-/

  4. #4
    Großmeister(in)
    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Problem bei Datums-Vergleich

    Zitat Zitat von Lavingstar Beitrag anzeigen
    Wenn ich z.b. als Datum den 31.03.2009 drin habe und suche nach >= 30.03.2009 findet er den Eintrag einwandfrei -
    suche ich jedoch nach <=01.04.2009 kann er den Eintrag vom 31.03.2009 nicht finden (findet dafür aber bspw. Einträge vom 01.03.2009)
    Wenn du Strings vergleicht beginnt das vorne. In deinem Datumsformat steht vorne der Tag, also wird der erstmal verglichen. Da ist dann 31 größer als 30, klappt also, er würde dir aber auch z.B. den 31.01.1781 als > 30.03.2009 ausspucken.
    Wenn du das Datum als String vergleichen willst mußt du es schon richtig herum schreiben, in der Form YYYY-MM-DD.
    Dann klappt das auch.

  5. #5
    Azubi(ne)
    Themenstarter

    Registriert seit
    16.09.2008
    Beiträge
    54
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Problem bei Datums-Vergleich

    Zitat Zitat von SinnlosS Beitrag anzeigen
    Wenn du Strings vergleicht beginnt das vorne. In deinem Datumsformat steht vorne der Tag, also wird der erstmal verglichen. Da ist dann 31 größer als 30, klappt also, er würde dir aber auch z.B. den 31.01.1781 als > 30.03.2009 ausspucken.
    Wenn du das Datum als String vergleichen willst mußt du es schon richtig herum schreiben, in der Form YYYY-MM-DD.
    Dann klappt das auch.
    Hmm...das klingt allerdings sehr logisch
    Ok, also muss ich beim suchen/vergleichen die beiden Datümmer(?) "formatieren"?

  6. #6
    Bandit
    Gast

    Standard AW: Problem bei Datums-Vergleich

    Ein Datum, zwei Daten.

    Du solltest trotzdem auf den Typ date gehen. Erstelle eine Spalte vom Type date, lese per Script die Daten ein, konvertiere passend und speichere es in die neue Tabellenspalte (Aufwand von ca. 10 Min.). Dann experimentierst du mit der neuen Tabellenspalte und wenn alles funktioniert, haust du die alte (und kaputte) Spalte weg.

  7. #7
    Azubi(ne)
    Themenstarter

    Registriert seit
    16.09.2008
    Beiträge
    54
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Problem bei Datums-Vergleich

    Das klingt gut, hab ja die version 2 mal (einmal zum austesten, einmal eine die schon in Anwendung ist).

    - Erstelle eine Spalte vom Type date => Kein Problem
    - Lese per Script die daten ein / konvertiere passend / und speichere in die neue Spalte

    => Nur die Daten aus dem Feld "a_dat"? Wie geht das?
    Über phpmyAdmin kann ich nur die komplette Tabelle exportieren/importieren
    Aber wie kann ich die Daten aus einem einzigen Feld einer Tabelle im-/exportieren?
    Und mit welchem Befehl kann ich konvertieren?

  8. #8
    Bandit
    Gast

    Standard AW: Problem bei Datums-Vergleich

    Konvertierung des Datums (ungetestet):
    PHP-Code:
    <?php

       
    @mysql_connect("host""user""passwort")
         or die (
    "Connection failed");
         
       @
    mysql_select_db("datenbankname")
         or die (
    "No database");
         
       
    $query "select
                   id,
                   a_dat
                  from
                   tabelle"
    ;
                   
        
    $result mysql_query($query)
           or die (
    "MySQL-Error: " mysql_error());
           
        while (
    $row mysql_fetch_row($result))
        {
            
    $dat row['a_dat'];
            
    $id   row['id']
            
            
    $data explode("."$dat);
            
            
    $datum $data[2] . "-" $data[1] . "-" $data[0];
            
            
    $query "Update
                        tabelle
                       set
                         neues_datum='
    $datum'
                       where
                         id = 
    $id";
                         
            
    mysql_query($query)
              or die (
    "MySQL-Error: " mysql_error());
        }
    ?>
    Geändert von bandit600 (10.02.2009 um 15:39 Uhr)

  9. #9
    Azubi(ne)
    Themenstarter

    Registriert seit
    16.09.2008
    Beiträge
    54
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Problem bei Datums-Vergleich

    ui, vielen dank dafür !
    Das werd ich direkt mal ausprobieren !

Ähnliche Themen

  1. CMS Vergleich
    Von Dr. Gore im Forum HTML & CSS Forum
    Antworten: 13
    Letzter Beitrag: 13.04.2009, 15:14
  2. Auslesen und Ausgabe des Datums aus DB fehlerhaft
    Von Odo im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 5
    Letzter Beitrag: 09.06.2007, 15:47
  3. [biete] Datums Script
    Von Mir nicht im Forum Script-Archiv
    Antworten: 0
    Letzter Beitrag: 16.05.2007, 11:25
  4. Vergleich von Zahlen
    Von FaFoo im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 6
    Letzter Beitrag: 10.04.2006, 20:32
  5. Vergleich auf undefined
    Von Torty im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 6
    Letzter Beitrag: 01.04.2005, 11:48

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •