Test in Timestamp umwandeln

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

  • Test in Timestamp umwandeln

    Hallo,

    habe ein kleines Problem .... in meinen Forum quellt die Post über

    Die Mitglieder löschen leider nicht die Post....

    Deshalb muss ich einen Cronjob setzten der täglich die Post löscht die älter ist als 40 Tage...

    Wäre ja auch alles kein Problem aber ich habe damals einen Fehler gemacht in der Tabelle Post ist der Timestamp enthalten, habe aber den timestamp nicht als date, oder Timstamp definiert sondern als varchar(14)

    Ja ich weiss ein sehr dummer Fehler im Timestamp steht zwar jetzt das Datum von der Post zb so 14.02.2005

    Ich kann den timestamp auch nicht ändern in der Tabelle das bringt nix unabhängig davon müsste ich einige Scripts total ändern ....

    Deshalb gibt es nur eine Lösung ...

    der Text aus der Tabelle Post im Timestamp müsste umgeschrieben und mit den aktuellen timestamp verglichen werden ....

    Bespiel 12.02.2005 da ist Post älter als 40 Tage weil heute der 2.07.2005 ist und soll damit gelöscht werden...

    Wer kann mir helfen und zeigt mir wie man das umschreibt.....

    Ich denke mal man müsste vorher ein paar Stings schreiben die Umwandlung des alten Timestamp in den aktuellen timestamp geht galube nicht in der SQL Ausführung oder doch?

    $query = "delete nachricht from Post where ????????????????????????
    $result=mysql_db_query($dbname,$query,$conn) or die(mysql_error());

    Freue mich schon auf eure Hilfe besten Dank im vorraus....

  • #2
    die Umwandlung des alten Timestamp in den aktuellen timestamp geht galube nicht in der SQL Ausführung oder doch?
    doch, das müßte auch gehen ... schau dir z.b. mal LOCATE() an ...

    am besten machst du ersteinmal ein SELECT auf die tabelle, und versuchst dir schritt für schritt die syntax zusammen zu basteln. ob du dann noch in einem timestamp wandeln willst, muß du entscheiden, du kannst ja vielleicht auch per DATE_ADD() vorgehen.
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Danke für Deine schnelle Antwort leider verstehe ich aber nur Bahnhof ... bin nur ein kleiner Hobbyprogrammierer

      Macht es Dir viel Mühe wenn Du mir die SQL Anweisung schreiben würdest?

      Kommentar


      • #4
        hmm,

        es geht noch einfacher, unter der voraussetzung, daß dein datum immer mit führenden nullen bei ziffern formatiert ist ...
        Code:
        SELECT
        DATE_ADD(
          CONCAT_WS("-", 
            SUBSTRING("14.02.2005", 7),
            SUBSTRING("14.02.2005", 4, 2),
            SUBSTRING("14.02.2005", 1, 2)
          )
        , INTERVAL 40 DAY
        )
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          Hmm Danke sieht gut aus weiss aber nur nicht wie ich das jetzt anwenden soll


          $query = " nachricht SELECT from post
          DATE_ADD(
          CONCAT_WS("-",
          SUBSTRING("14.02.2005", 7),
          SUBSTRING("14.02.2005", 4, 2),
          SUBSTRING("14.02.2005", 1, 2)
          )
          , INTERVAL 40 DAY
          )
          $result=mysql_db_query($dbname,$query,$conn) or die(mysql_error());

          hmmm das kann aber nicht passen oder?

          aber in Deiner SQL Anweisung wird ja keine Tabelle und keine Spalte angesprochen...

          hmm

          SELECT
          DATE_ADD(
          CONCAT_WS("-",
          SUBSTRING("14.02.2005", 7),
          SUBSTRING("14.02.2005", 4, 2),
          SUBSTRING("14.02.2005", 1, 2)
          )
          , INTERVAL 40 DAY
          )

          Kommentar


          • #6
            Hmm Danke sieht gut aus weiss aber nur nicht wie ich das jetzt anwenden soll
            dann solltest du mal sql lernen. brauchst du nicht mal, du mußt nur den schnipsel auf deinen code anpassen. und wenn du schon ein forum geschrieben hast, sollte das wohl kein problem sein.
            aber in Deiner SQL Anweisung wird ja keine Tabelle und keine Spalte angesprochen...
            wozu auch? sie zerlegt lediglich dein text-datum in ein sql-datum und rechnet 40 tage hinzu.
            Die Zeit hat ihre Kinder längst gefressen

            Kommentar

            Lädt...
            X