SQL Update statement

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

  • SQL Update statement

    Hallo,

    ich transferiere gerade Webserverlogdaten in eine MySQL Datenbank.
    In der Tabelle log gibt es uU eine Spalte datum in dem Datenformat Date.

    Nun ist erstaunlicherweise, dass Problem aufgetreten, dass die beiden Monate August und September als 00 und nicht 08 bzw. 09 dargestellt werden. Den entsprechenden Auszug repräsentiere ich gleich noch.


    Ich würde nun ein SQL Update durchführen, der für alle Einträge der ID 7673134 bis 7802003 den Eintrag 2008-00-%% in 2008-08-%% ändert.

    %% stehen als Platzhalter der einzelnen Tage.


    Bin für jede Hilfe dankbar.




    { $daten=explode(";",$buffer);
    $tag = substr($daten[1],1,2);
    $monat= substr($daten[1],4,3);
    $jahr= substr($daten[1],8,4);
    $stunde= substr($daten[1],13,2);
    $minute= substr($daten[1],16,2);
    $sekunde= substr($daten[1],19,2);

    switch ($monat)
    {
    case "Jan" : $monat=01; break;
    case "Feb" : $monat=02; break; case "Mar" : $monat=03; break; case "Apr" : $monat=04; break; case "May" : $monat=05; break; case "Jun" : $monat=06; break; case "Jul" : $monat=07; break; case "Aug" : $monat=08; break; case "Sep" : $monat=09; break; case "Oct" : $monat=10; break; case "Nov" : $monat=11; break; case "Dec" : $monat=12; break;
    Zuletzt geändert von elf7013; 21.01.2009, 15:04.

  • #2
    Re: SQL Update statement

    Original geschrieben von elf7013
    Ich würde nun ein SQL Update durchführen, der für alle Einträge der ID 7673134 bis 7802003 den Eintrag 2008-00-%% in 2008-08-%% ändert.
    Warum nutzt Du nicht die MySQL Datums- und Zeitfunktionen?

    Beispiel:
    PHP-Code:
    $sql "
        UPDATE 
            `DateTable` 
        SET 
            dateValue = CONCAT(YEAR(dateValue), '-', 08, '-', DAY(dateValue))
        WHERE 
            MONTH(dateValue) = 0
    "

    In der Spalte dateValue steht ein Wert im Format DATE. Ich hoffe Du hast den entsprechenden Typen für Deine Tabelle in der Datenbank so eingerichtet. Im Beispiel werden alle Datensätze ausgelesen, die den Monat 0 haben. Diese Datensätze werden dann als Monat 08 (August) aktualisiert.
    MM Newmedia | MeinBlog

    Kommentar


    • #3
      Danke für den Vorschlag.

      Problematisch ist natürlich, dass man auch noch das Problem für den September hat. Aber über eine ID Eingrenzung geht es dann auch mit dem Update Statement.

      Kommentar

      Lädt...
      X