2016-01-22 5 views
5

Ich bin neu zu Postgres und ich habe auf Mysql für Ruhe manchmal gearbeitet. Ich muss Inhalt von Mysql-Tabelle zu Postgres-Tabelle migrieren.Wie konvertiert man einen Mysql-Zeitstempel in sysdate (6) -Format (mit Millisekunden)?

Meine Postgres Tabelle ist wie folgt:

   Column    |   Type    |           Modifiers            
--------------------------------+-----------------------------+------------------------------------------------------------------------------------------------ 
id        | integer      | 
created_at      | timestamp without time zone | not null default timezone('UTC'::text, now()) 
updated_at      | timestamp without time zone | not null default timezone('UTC'::text, now()) 
key_classification    | character varying(2000)  | not null 

ich created_at bin Einfügen und updated_at Wert von MySQL-Tabelle, die in der Form "2014.09.04 23.40.14" ist.

Wenn ich eine Zeile in meine Postgres-Tabelle einfügen, ist der Standardzeitstempel in der Form "2016-01-22 17: 44: 53.342757", die Millisekunde im Zeitstempel enthält.

Jetzt muss ich die Millisekunde zum mysql Timestamp-Format hinzufügen, um das Postgres-Tabellenformat anzupassen.

Bitte helfen Sie die Millisekunde in den Zeitstempel hinzuzufügen.

Vielen Dank im Voraus!

+3

Vielleicht müssen Sie lesen [Zeitstempel mit einer Millisekunde presicion, wie die in MySQL speichern] (http://stackoverflow.com/questions/26299149/timestamp-with-a-millisecond -precision-how-to-save-sie-in-mysql) – eusoj

+0

benötigen Sie diese Präzision in MySQL, oder glauben Sie einfach, Sie brauchen es für die Migration? postgresql akzeptiert gerne auch kürzere Zeitstempel, auch "2016-01-22" als Abkürzung für "2016-01-22 00: 00: 00.000000" – knitti

Antwort

0

Morgen Arunraj Ich hoffe, das hilft?

Ich bin mit Mysql/MariaDB

MariaDB [(none)]> SHOW VARIABLES LIKE "%version%"; 
+-------------------------+-----------------+ 
| Variable_name   | Value   | 
+-------------------------+-----------------+ 
| innodb_version   | 5.6.25-73.1  | 
| protocol_version  | 10    | 
| slave_type_conversions |     | 
| version     | 10.0.21-MariaDB | 
| version_comment   | MariaDB Server | 
| version_compile_machine | x86_64   | 
| version_compile_os  | Linux   | 
| version_malloc_library | system   | 
+-------------------------+-----------------+ 
8 rows in set (0.00 sec) 

Und ich bin Referenzierung 11.3.6 Fractional Seconds in Time Values Welche MySQL-Version 5.7

ist Um das Beispiel

As mysql Admin 
mysql -u USERNAME -p 

CREATE USER 'test'@'localhost' IDENTIFIED BY 'test'; 

CREATE DATABASE test; 

GRANT ALL ON test.* TO 'test'@'localhost'; 

Beenden und melden Sie sich als laufen Test

mysql -u test -p 

Das Passwort ist Test

Dann

CREATE TABLE test.td6(ts6 timestamp(6)); 

INSERT INTO test.td6 VALUES ('2016-01-22 17:44:53.342757'); 

Der eingegebene Wert ist das Zeitformat Sie in mysql einfügen wollte. Example Results Ref msql 5.7

Alles Gute

Verwandte Themen