MySQL. Einen TIMESTAMP Eintrag in neuer Spalte als DATETIME eintragen.

Registriere dich jetzt, um exklusive Vorteile zu genießen! Als registriertes Mitglied kannst du Inhalte herunterladen und profitierst von einem werbefreien Forum.
Mach mit und werde Teil unserer Community!
  • Hallo,



    gibt es die folgende Funktion in PhpMyAdmin?


    Einen vorhandenen TIMESTAMP -Eintrag in ein neues leeres Feld, als lesbares Datum, eintragen.

    Siehe Beispiel ganz unten.


    Lässt sich das mittels PhpMyAdmin erledigen, oder braucht es dazu ein externes Skript?

    Suchte mir schon einen Wolf, finde dazu aber keinen passenden Sql Befehl.





    Aktueller Stand:

    Ich habe eine Tabelle (data) in einer Datenbank mit 5 Spalten vorliegen.

    Quote

    Tabelle: data


    id - location - timestamp - temp - hum

    Mittels ALTER TABLE data ADD zeit DATETIME AFTER hum; habe ich die neue Spalte "zeit" eingefügt.


    Quote

    id - location - timestamp - temp - hum - zeit

    Nun soll in der Spalte "zeit" der umgerechnete Wert aus "timestamp" eingetragen werden.

    Der Grund:

    Um für Korrekturen einfacher und schneller den richtigen Eintrag in der Tabelle zu finden.

    Das ist mit "timestamp" leider recht mühsam.


    Beispiel:

    Quote

    id ....... location ......... timestamp ....... temp ....... hum ........ zeit

    1........ irgendwo ........ 1453836607 ....... 20 ............ 60 ........ 26.01.2016 20:30:07



    Hat hierzu jemand eine brauchbare Idee, Tipps, Vorschläge?

    Ich hoffe es gibt hier schon soweit fertige Beispiele im Netzt welche nur noch angepasst werden müssten.

    Am schönsten wäre es natürlich das per PhpMyAdmin & einem SQL-Befehl zu erledigen, da ich kein Programmierer bin und kaum Ahnung habe von dem allem.



    Vorab schonmal herzlichen Dank! :)

  • Du kannst Dir auch eine View bauen, die Dir den Timestamp umwandelt.

    Code
    CREATE VIEW view_name AS
    SELECT `id`, `location`, `timestamp`, FROM_UNIXTIME(`timestamp`) AS `datetime`, `temp`, `hum`
      FROM table_name;

    Mache ich immer so, Datenbank hat immer nur Timestamps, (visuelle) Auswertung über Views.

  • Hallo meigrafd,

    Ich würde das eher nicht machen,...

    Der Grund:

    Um für Korrekturen einfacher und schneller den richtigen Eintrag in der Tabelle zu finden.

    Das ist mit "timestamp" leider recht mühsam.

    Hin und wieder kommt es bei mir zu "falschen" Einträgen. Warum auch immer.

    Dann stehen keine plausiblen Werte in der Datenbank.

    Um diese dann von Hand in der DB zu ändern ist es mit Timstamp recht mühsam gewesen.

    ...Datum umrechnen in Timstamp.

    ...Timestamp in der DB suchen...


    So geht es jetzt viel einfacher! :)

    Timestamp ist nach wie vor vorhanden und wird auch verarbeitet.

    Datum und Zeit sind nur zusätzlich vorhanden.

    Das sind jetzt halt Erfahrungswerte aus der Praxis.

    Das wurde beim Erstellen des Skriptes nicht bedacht. Leider kann ich das nicht selbst ändern.

    Sind übrigens die Highcharts von dir damals :cool:

    Wäre natürlich super bombastisch wenn man das Skript daraufhin erweitern könnte :angel:


    Viele Grüße

  • Wäre natürlich super bombastisch wenn man das Skript daraufhin erweitern könnte

    Nö wieso, scheint ja nur bei dir Probleme zu machen, bist zumindest der erste der dergleichen äußert.

    Finde und beheben das Problem. Was du nun aber macht ist es zu ignorieren.


    Wie gesagt kann man über ein entsprechendes SQL-Query problemlos eine Umwandlung vornehmen und demzufolge auch gezielt Einträge suchen. Was du nun aber machst ist doppeltgemoppelt - umgangssprachliche Faulheit.

  • Die Faulen sind die eigentlichen Wohltäter der Menschheit. Denkt daran, wie viel Unheil allein durch Nichtstun verhindert worden ist.


    Kaum macht man es richtig, funktioniert es. Aber nur weil etwas funktioniert, hat man es nicht zwingend richtig gemacht.


    Die Erfindung des Problems ist wichtiger als die Erfindung der Lösung.


    Lernen ist ein aktiver Prozess. Wir lernen, indem wir es tun.