romberto
Goto Top

SQL Unixtime in Datetime umwandeln und speichern

Hallo,

eines Vorweg: Ich gehe schwer davon aus, dass das eine Anfängerfrage ist und bereite mich schon einmal auf Spot und Gelächter vor. Ich habe allerdings keinerlei Erfahrungen mit Datenbanken und würde mich über Hilfe wirklich sehr freuen.

Ich benenne meine MP3 Ordner stehts nach Erscheinungsdatum Datum via Batchfile über eine Textdatei um. Diesbezüglich wurde mir hier auch schon geholfen. Nun hat mir ein Bekannter eine sehr große MYSQL Datenbank zukommen lassen, deren Inhalt ich gerne für mein Unterfangen nutzen möchte. Nach langem Suchen, habe ich mit Xampp ein Programm gefunden mit welchem ich an meinem Windows Rechner die MSQL Datenbank öffnen und auch bearbeiten kann. Die Datenbank (Musikdb) enthält neben vielen anderen auch eine Spalte für die Albumstitel (album) und eine für das Erscheinungsdatum (time), welche für mich die einzig wichtigen Spalten sind.

Leider wird die Spalte `time` im Unixtime Format angezeigt. Ich benötige sie aber im Format (YYYY-MM-DD). Via Google finde ich leider nur "Select" Kommandos welche mir die Spalte zwar kurz im richtigen Format ausgeben, dieses aber nicht dauerhaft Speichern und wenn das Speichern bei einem Befehl doch klappt habe ich in jeder Zeile 0000-00-00 stehen. Mangels Wissen auf diesem Gebiet kann ich die Befehle auch leider nicht für meine Zwecke abändern.

Es wäre wirklich Super wenn mir hier jemand den entsprechenden Befehl posten könnte.

Viele Grüße

Robert

Content-Key: 185157

Url: https://administrator.de/contentid/185157

Printed on: May 7, 2024 at 18:05 o'clock

Member: Biber
Biber May 18, 2012 updated at 19:08:44 (UTC)
Goto Top
Moin Romberto,

Leider wird die Spalte `time` im Unixtime Format angezeigt. Ich benötige sie aber im Format (YYYY-MM-DD)
Falls die Spalte 'time' nicht nur als "Unixtime" angezeigt wird, sondern auch ein numerischer Wert ist und du nach der Umwandlung einen date/datetime-Wert brauchst:
UPDATE deineTabelle SET eineDatetimeSpalte = FROM_UNIXTIME(DieUnixtimestampSpalte) WHERE (1=1);

Ob du nun tatsächlich beide Datumswerte in zwei unterschiedlichen Formaten redundant mitschleifen willst, das mag ich nicht bewerten.

Kommt darauf an, ob und wann du diesen Inhalt brauchst - falls wirklich zur Suche/Sortierung in der Datenbank-> dann mag eine Speicherung als zusätzliches Datetime-Feld vertretbar sein.

Wenn es nur bei einem Export/einer Berichtserstellung gebraucht wird->dann kannst du das Unixdate dann mit der Funktion FROM_UNIXTIME() umwandeln und auf Redundanz verzichten.

Grüße
Biber
Member: romberto
romberto May 18, 2012 updated at 19:22:02 (UTC)
Goto Top
Hallo Biber,

Danke für deinen Denkanstoß. Ich konnte es nun wie folgt lösen:
ALTER TABLE `Musikdb` CHANGE `time` `unix_time` int(11) NOT NULL
ALTER TABLE `Musikdb` ADD `time` DATETIME NOT NULL
UPDATE `Musikdb` SET `time`=FROM_UNIXTIME(unix_time)
ALTER TABLE `Musikdb` DROP `unix_time`
Nochmals vielen Dank

Robert