ich bin neu hier und nicht wirklich erfahren mit PostgreSQL und mit SQL allgemein.
Nun habe ich über einen mysql Dump eine Datenbank auf PostgreSQL migriert.
Es handelt sich um ca 20 Tabellen mit teilweise bis zu 30.000 Logging-Datensätzen in welche Daten mit Timestamp geschrieben werden.
Die Tabellen sehen etwa so aus:
-- Table: item23
-- DROP TABLE item23;
CREATE TABLE item23
(
"time" timestamp without time zone NOT NULL,
value double precision,
CONSTRAINT item23_pkey PRIMARY KEY ("time")
)
WITH (
OIDS=FALSE
);
Allerdings hat die Konvertierung des Timestampo nicht korrekt funktioniert:
Nun suche ich ein Skript oder eine Möglichkeit die alten mysql timesatamps auf den aktuellen Stand zu bringen, am besten Tabellenweise:
YYYY-MM-DD HH24:MI:SS to YYYY-MM-DD HH24:MI:SS.US
Die harte aber extrem aufwändige Methode wäre, zu exportieren -> manipulieren -> zurück spielen.
Ich hoffe aber über ALTER oder
-> lesen eines Datensatzes
-> manipulieren des Timestamp (zB .000001 anhängen)
-> zurückschreiben/einlesen an die ursprüngliche Stelle.
sollte doch über SQL bzw. spezielle PostgreSQL Befehle auch möglich sein die Timestamp zu manipulieren??
EDIT: Ich glaube es ist aber nicht nur eine Sache der Ausgabe, denn ich erhalte über Abfragen der Zeiträume nur noch die neu geschriebenen YYYY-MM-DD HH24:MI:SS.US Daten.
Du meinst ich soll einfach meine Abragen korregieren… hmmm.
Die Ausgabe über
SELECT *, to_char(time, ‘YYYY-MM-DD HH24:MI:SS.US’) FROM item23;
bringt auf jeden Fall schon mal das richtige Ergebnis.
Warum sollte die DB ungefragt 3, 5 oder 42 Nullen dranhängen, wenn diese das Resultat nicht ändern? Stehen auf Deinem Kontoauszug statt 5,00 auch 5,00000?