tabelle nachträglich überarbeiten

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

  • tabelle nachträglich überarbeiten

    hallo!
    hab einen terminkalender übernommen. dort werden die termine in die felder "day" "month" und "year" reingeschrieben!

    das gefällt mir nicht wirklich!
    ich möchte also jetzt eine neue spalte anlegen, in der ich einen timestamp reinsetzen will (mktime)!

    aber wie krieg ich es hin, dass die termine die jetzt schon in der db stehen auch einen stamp kriegen und zwar soll der sich natürlich aus dem vorhanden daten "day" "month" und "year" errechnen!
    automatisch!!

    geht das oder muss ich alle datensätze manuell durchrödeln?


    danke

  • #2
    Re: tabelle nachträglich überarbeiten

    geht das oder muss ich alle datensätze manuell durchrödeln?
    ich glaube, das geht.

    CONCAT(str1,str2,...) bzw.
    CONCAT_WS(separator,str1,str2,...)

    Code:
    UPDATE table
    SET datumspalte = CONCAT_WS('-', yeahspalte, monthspalte, dayspalte) ...
    alle angaben ohne gewähr.
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Also ich würde einfach alle Datensätze in einer Schleife auslesen. Bei jedem Durchlauf einfach die drei Werte mit mktime() in ein Timestamp umbauen lassen und gleich zurück in die DB schreiben.

      Ist zwar nicht effizient, weil man pro DS einen Updateaufruf hat, aber da dein Datenbankumbau eine einmalige Sache ist, sollte das kein Prob sein. Ausserdem isses so schön einfach

      P.S. das lässt sich bestimmt auch mit einer einzigen Abfrage lösen, aber ich kenn mich leider mit den datumsfunktionen von mysql nicht aus und habe auch keine Lust zu suchen
      Zuletzt geändert von Big Chief; 29.06.2004, 15:16.
      [color=red]Geht nicht[/color] ist keine Fehlermeldung

      Kommentar


      • #4
        ok! hab es so probiert:

        PHP-Code:
        UPDATE testtermine
        SET eventstamp 
        CONCAT_WS('-'yearmonthdayhourminute
        aber jetzt schmeisst er mir das so raus:
        2003-12-14-10-00
        ich möchte aber das folgendes reingeschrieben wird:
        1071392400 (14.12.2003 10:00 Uhr)

        evtl. so irgendwie?
        PHP-Code:
         mktime(hour,minute,0,month,day,year); 
        danke!!!!

        Kommentar


        • #5
          dann mach mit concat:

          ... = concat(`year`,'-',`month`,'-',`day`,' ',`hour`,':',`minute`) ...

          Mann, ein bisschen kreativ sollst du auch sein

          Kommentar


          • #6
            ich möchte aber das folgendes reingeschrieben wird:
            1071392400 (14.12.2003 10:00 Uhr)
            wie gesagt mktime() ist das problem!!! werd mich wohl an Big Chief halten!

            Kommentar


            • #7
              Original geschrieben von websdream
              wie gesagt mktime() ist das problem!!!
              nein, das du nicht mal einen blick ins manual wirfst, ist das problem ... mysql bietet durchaus möglichkeiten, datumsangaben in einen unix timestamp umzuwandeln.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Original geschrieben von websdream
                wie gesagt mktime() ist das problem!!! werd mich wohl an Big Chief halten!
                ist es denn so schwer - durch . händisch zu ersetzen, die Spalten umzuplazieren und das Wort "Uhr" hinten dranzuhängen (@goth wo bist du)
                EDIT:
                ach du willst UNIX-Timestamp haben? dann s. @wahsaga Posting
                Zuletzt geändert von asp2php; 29.06.2004, 15:24.

                Kommentar


                • #9
                  1. antwort: siehe manual, mysql kann das hätte durchaus genügt
                  2. erst lesen, dann antworten
                  3. schlag mal nach, was "forum" heißt


                  und weg - echt schade

                  Kommentar


                  • #10
                    Original geschrieben von websdream
                    1. antwort: siehe manual, mysql kann das hätte durchaus genügt
                    du hättest dich ja erstmal selber bemühen können, dass herauszufinden.
                    es gibt im manual eine extra seite nur über die "datums- und zeitfunktionen" - wenn du da gewesen wärst, hättest du den befehl finden müssen.
                    2. erst lesen, dann antworten
                    da solltest du dich vor allem selber mal dran halten. vielleicht noch ein "erst denken" vor "antworten" einfügen.
                    3. schlag mal nach, was "forum" heißt
                    für weinerliches pussy-gejammer geht es hier entlang - und da wirst du auch erklärt finden, was wir unter einem forum verstehen.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Original geschrieben von websdream
                      1. antwort: siehe manual, mysql kann das hätte durchaus genügt
                      bekommst du zukünftig von mir, wenn du jemals zurück kommt
                      aussedem "php kann das" für andere Fälle ...

                      2. erst lesen, dann antworten
                      selbst Schuld, wenn du so ein Wirrwar postest und nicht einfach sagt; UNIX-Timestamp hätte durchaus genügt

                      3. schlag mal nach, was "forum" heißt
                      bestimmt nicht: "her mit der Lösung"

                      und weg - echt schade
                      findest du?

                      Kommentar

                      Lädt...
                      X