2016-06-03 7 views
-1

Ich speichere DateTime-Daten in mySql als Zeitstempel, und ich muss die Daten als Unix-Zeitstempel abrufen.Gibt es eine Möglichkeit, einfach `myTable` auszuwählen * und die Zeitstempel als Unix-Zeit zu bekommen?

Ich kann select UNIX_TIMESTAMP(timestampData) from myTable verwenden.

Aber ich normalerweise select * from myTable1 join myTable2 on .... die in einigen Fällen bis zu 50 Felder erhalten kann.

was bedeutet, ich muss entweder:

  • Option 1: select *, UNIX_TIMESTAMP(timestamp1), UNIX_TIMESTAMP(timestamp2) from myTables und ich werde die Daten doppelt und hart
  • Option 2 zu halten erhalten: select c1, c2, c3,... , UNIX_TIMESTAMP(timestamp1), UNIX_TIMESTAMP(timestamp2) from myTables. Dies wäre schwieriger zu schreiben und zu pflegen.

Die Frage ist Gibt es eine Möglichkeit, einfach select * from myTable und die Zeitstempel als Unix-Zeit zu bekommen?

+1

Nein, gibt es nicht. Wenn Sie das wollten, sollten Sie sie als Unix-Zeitstempel gespeichert haben. – Barmar

+3

Sie möchten nicht alle Felder mit * auswählen. Das ist schlechte Praxis. Sie sollten nur die benötigten Felder auswählen. – Deep

+0

was passiert, wenn Sie die unix_timestamped Felder mit dem gleichen Feldnamen aliasieren? SELECT *, UNIX_TIMESTAMP (timestamp1) AS timestamp1, UNIX_TIMESTAMP (timestamp2) AS timestamp2 ... Es kann hilfreich sein, doppelte Feldwerte vom ersten bis zum letzten zu überschreiben, aber es hängt von Ihrem Controller ab, der in der Frage unbekannt ist. – smozgur

Antwort

0

Der einfachste Weg, dies zu handhaben, wäre wahrscheinlich, die Zeit nach Erhalt in Ihrer Anwendung zu analysieren. Ansonsten sehe ich bei Option 2, dass diese Dinge normalerweise in einer professionellen Umgebung gemacht werden.