Format Date vergleichen und älter als löschen

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

  • Format Date vergleichen und älter als löschen

    Folgendes dumme problem:

    In meiner DB werden einträge gespeichert. Dazu wird auch ein datum im date format gespeichert. Das sieht dann so aus: 2003-03-21
    Nun möchte ich alle einträge mit der aktuellen serverzeit vergleichen und einträge die älter als 14 tage sind löschen. Mein problem ist nun, wie fange ich da am besten an?

    folgendes dazu hab ich gefunden:

    mysql> SELECT EXTRACT(YEAR_MONTH FROM "1999-07-02 01:02:03");
    -> 199907

    Klar ist, das ich mein vorhandenes in eine Ganzzahl umwandle, ebenso die aktuelle zeit. aber wie soll das dann von statten gehn...?

    Und dann noch was, kann ich in einer SLQ abfrage direkt den vergleich machen?

    Für ne kleine Hilfe wäre ich euch dankbar

    Gruß Manfred

  • #2
    nimm ein

    DELETE FROM tbl
    WHERE datums_feld < CURDATE() - INTERVAL 14 DAY

    oder
    WHERE datums_feld < NOW() - INTERVAL 14 DAY
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Ok, werd das gleich mal testen! thx!

      Gruß Manfred

      Kommentar


      • #4
        Ich hab glaube ich ein problem mit curdate().

        hier mal der code:

        PHP-Code:
        cc_query("DELETE FROM "$sysdb["email"] ." WHERE add_ddate < CURDATE() - INTERVAL 14 DAY AND sendmail_flag='0' "); 

        Jetzt hab ich also nen eintrag in der db, in dessen feld "add_date" ein 2003-03-06 steht. 14 Tage dazu gerechnet wäre gestern gewesen... der eintrag wird aber nicht gelöscht?!?!?

        Gruß Manfred

        Kommentar


        • #5
          und sendmail_flag=0???
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar


          • #6
            ebend nicht... das ist ja das komische daran....

            curdate() sollte mir ja das momentane datum ausgeben...nich? wenn ich das als string in ne variable pack und mir das anzeigen lassen möcht, passiert nix, muss das so sein?!?

            Gruß Manfred

            Kommentar


            • #7
              DELETE FROM ". $sysdb["email"] ." WHERE add_ddate < CURDATE() - INTERVAL 14 DAY AND sendmail_flag='0'

              Du löschst alle DS die älter als 14 Tage sind und bei denen sendmail_flag = '0' ist
              Sollte ein Datensatz älter als 14 Tage sein aber sendmail_flag zB = 1 is dann wird er net gelöscht, is doch klar.
              Beantworte nie Threads mit mehr als 15 followups...
              Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

              Kommentar


              • #8
                Ja klar. Aber ich hab ja einen ds wo date = 2003-03-06 und sendmail_flag = 0 ist. Warum wird dieser nicht gelöscht?!? hab den ja extra zum testen angelegt ?!?!?!?

                Gruß Manfred

                Kommentar


                • #9
                  Reden wir hier von MySQL?
                  Beantworte nie Threads mit mehr als 15 followups...
                  Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                  Kommentar


                  • #10
                    Ja, denk schon

                    Gruß Manfred

                    Kommentar


                    • #11
                      zeig mal mehr code.
                      Beantworte nie Threads mit mehr als 15 followups...
                      Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                      Kommentar


                      • #12
                        PHP-Code:
                        <?php

                        // creation of the header: top bar, side bar etc.
                        echo "<html><head>";
                        echo 
                        "<META http-equiv=\"Content-Type\" content=\"text/html\">";
                        echo 
                        "<META name=\"GENERATOR\" content=\"PHP, mySQL and softCMS\">";
                        echo 
                        $sysar["meta"];

                        if ( 
                        $my_title == "" )
                          {
                          echo 
                        "<TITLE>"$sysar["title"] ."</TITLE>";
                          }
                        else
                          {
                          echo 
                        "<TITLE>$my_title</TITLE>\n";
                          }
                          
                          
                            
                        cc_query("DELETE FROM "$sysdb["email"] ."    WHERE add_ddate < NOW() - INTERVAL 14 DAY AND sendmail_flag='0'");



                        if ( 
                        $sysar["showpopup"] == "Y" )

                        {  

                            
                        $query3 cc_query("select p_width, p_height from "$sysdb["popup"] ." WHERE active = 'active' ") ;
                            list(
                        $width$height) = mysql_fetch_array($query3);

                        ?>

                        <body onload="checkCount()">

                        <script language="JavaScript"> 
                        <!-- 
                        var expDays = 1;     // anzahl der Tage wann der cookie erlischt 
                        var page = "include/main_popup.php";// zu öffnenede Seite 
                        var windowprops = "width=<?php echo $width ?>,height=<?php echo $height ?>,location=no,toolbar=no,menubar=no,scrollbars=no,resizable=no"; 

                        function GetCookie (name)
                        {
                        var arg = name + "=";
                        var alen = arg.length;
                        var clen = document.cookie.length;
                        var i = 0;
                        while (i < clen) {

                        var j = i + alen;
                        if (document.cookie.substring(i, j) == arg)
                        return getCookieVal (j);
                        i = document.cookie.indexOf(" ", i) + 1;
                        if (i == 0) break;
                        }
                        return null;
                        }
                        function SetCookie (name, value)
                        {
                        var argv = SetCookie.arguments;
                        var argc = SetCookie.arguments.length;
                        var expires = (argc > 2) ? argv[2] : null;
                        var path = (argc > 3) ? argv[3] : null;
                        var domain = (argc > 4) ? argv[4] : null;
                        var secure = (argc > 5) ? argv[5] : false;
                        document.cookie = name + "=" + escape (value) +
                        ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
                        ((path == null) ? "" : ("; path=" + path)) +
                        ((domain == null) ? "" : ("; domain=" + domain)) +
                        ((secure == true) ? "; secure" : "");
                        }
                        function DeleteCookie (name)
                        {
                        var exp = new Date();
                        exp.setTime (exp.getTime() - 1);
                        var cval = GetCookie (name);
                        document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
                        }
                        var exp = new Date();
                        exp.setTime(exp.getTime() + (expDays*24*60*60*1000));
                        function amt(){
                        var count = GetCookie('count')
                        if(count == null) {
                        SetCookie('count','1')
                        return 1
                        }
                        else {
                        var newcount = parseInt(count) + 1;
                        DeleteCookie('count')
                        SetCookie('count',newcount,exp)
                        return count
                           }
                        }
                        function getCookieVal(offset) {
                        var endstr = document.cookie.indexOf (";", offset);
                        if (endstr == -1)
                        endstr = document.cookie.length;
                        return unescape(document.cookie.substring(offset, endstr));
                        }

                        function checkCount() {
                        var count = GetCookie('count');
                        if (count == null) {
                        count=1;
                        SetCookie('count', count, exp);

                        window.open(page, "", windowprops);

                        }
                        else {
                        count++;
                        SetCookie('count', count, exp);
                           }
                        }
                        // -->
                        </script>



                        <?php
                        }

                        echo 
                        "</head>";

                        /* set the colors */
                        echo "<body bgcolor=" $sysar["bgpage"] . " link=" $sysar["linkcolor"];
                        echo 
                        " text=" $sysar["textcolor"];
                        echo 
                        " vlink=" $sysar["vlinkcolor"] . " alink=" $sysar["alinkcolor"] . " style='font-family:Verdana;Arial'>"// Verdana  Arial face="Arial"


                        // show header
                        if ( $sysar["head_content"] )
                          {
                          
                        $my_result cc_query("select * from "$sysdb["contnt"] ." where name='"$sysar["head_content"] ."'" );
                          
                        // output of the page header
                          
                        if ( mysql_num_rows($my_result) == )
                            {
                            
                        $row mysql_fetch_object($my_result);
                            
                        $myheader  $row->html;
                            if (
                        $myheader)
                              {
                              echo 
                        $myheader;
                              if ( 
                        $sysar["showheadnav"] == "Y" cc_create_top_bar("904");
                              }
                            else
                              {
                              if ( 
                        $sysar["showheadnav"] == "Y" cc_create_top_bar("904");
                              }
                            }
                            
                        mysql_free_result($my_result);
                          }

                        if ( 
                        $sysar["showleftnav"] == "Y" )
                        Viel zu erkennen gibts hier eigentlich nicht, da dieses Script automatisch starten soll über seitenaufrufe...

                        Gruß Manfred

                        Kommentar


                        • #13
                          cc_query()
                          gibt das einen Wert zurück?
                          Beantworte nie Threads mit mehr als 15 followups...
                          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                          Kommentar


                          • #14
                            PHP-Code:
                              function cc_query($sqlcommand)
                              {
                                
                            // echo $sqlcommand;
                                
                            global $sysar;
                                
                            $func_result mysql_db_query($sysar["dbname"], $sqlcommand);
                                return 
                            $func_result;
                              } 
                            sollte, kommt aber nix.... über echo

                            Kommentar


                            • #15
                              Wenn nichts kommt ist das null es sollte aber 1 kommen wenns klappt.
                              $sysdb["email"] ist bekannt?
                              Beantworte nie Threads mit mehr als 15 followups...
                              Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                              Kommentar

                              Lädt...
                              X