welches Format für UTC-Zeitstempel wählen?

Papp Nase

Aktiver Benutzer
Beiträge
48
Hi,

welches Zahlenformat wählt ihr so für einen UTC-Zeitstempel? Nehmt ihr einen langen Integer oder gibt es einen speziellen Feldnamen dafür? Ich arbeite mit phpMyAdmin, habe aber bisher kein passendes Feldformat gefunden, dass die Zeit akzeptiert (ausser String).
 
Werbung:
Hi,

welches Zahlenformat wählt ihr so für einen UTC-Zeitstempel? Nehmt ihr einen langen Integer oder gibt es einen speziellen Feldnamen dafür? Ich arbeite mit phpMyAdmin, habe aber bisher kein passendes Feldformat gefunden, dass die Zeit akzeptiert (ausser String).

Was soll die Frage? INT ist für Zahlen, nicht für Zeiten. Hat zwar beides 6 Buchstaben und beginnt mit Z, ansonsten aber nicht viel gemeinsam. Schau in die Doku Deiner DB, in PG gibt es TIMESTAMP und TIMESTAMPTZ für Zeiten.
 
Datetime wird aber nicht angenommen. Habe eine csv-Datei in die Datenbank eingebunden und bei den UTC-Zeitstempeln steht dann bei Datetime stets der Wert Null, drum dachte ich, dass Datetime nicht geht.
 
... . Wie sieht den so ein UTC-Zeitstempel aus?

So ein UTC-Zeitstempel ist eine mehrstellige Zahl. Aktuell haben meine UTC-Werte 10 Stellen, z.B.

1394524208,0.

Wird der UTC-Wert um eins erhöht, also z.B. auf

1394524209,0

dann ist eine Sekunde vergangen. Es gibt ein Startdatum, dass Anfang der 70er Jahre definiert wurde. Mit Hilfe der vergangenen Sekunden kann man das aktuelle Datum berechnen.

Weil ich aber reine Sekunden brauche und keine Hundertstel oder noch kürzere Intervalle, wollte ich diesen 10stelligen Wert als long-Int abspeichern. Diese Werte werden mit Timestamp und Datetime nicht aus der CSV-Datei übernommen, es steht dann immer 0:00 Uhr und immer das gleiche Datum dadrinnen.
 
So ein UTC-Zeitstempel ist eine mehrstellige Zahl. Aktuell haben meine UTC-Werte 10 Stellen, z.B.

1394524208,0.

Wird der UTC-Wert um eins erhöht, also z.B. auf

1394524209,0

dann ist eine Sekunde vergangen. Es gibt ein Startdatum, dass Anfang der 70er Jahre definiert wurde. Mit Hilfe der vergangenen Sekunden kann man das aktuelle Datum berechnen.

Normal.

Code:
test=*# select timestamp with time zone 'epoch' + 1394524208.0 * interval '1 second';
  ?column?
------------------------
 2014-03-11 08:50:08+01
(1 row)

Wie ich eingangs schrieb: das eine ist für das Eine, das andere für das Andere. Manche Dinge kann man umrechnen. Andere Dinge nicht.
 
So ein UTC-Zeitstempel ist eine mehrstellige Zahl. Aktuell haben meine UTC-Werte 10 Stellen, z.B.
1394524208,0.
MySQL kann aus dem entsprechenden INTEGER-Wert ein Datum machen:
Code:
SELECT FROM_UNIXTIME( 1394524208 )
Du kannst daher den Import als BIGINT durchführen und anschließend den konvertierten Wert in eine andere DATETIME Spalte schreiben.

Code:
mysql> SELECT * FROM nase1;
+------------+------+
| timestamp  | date |
+------------+------+
| 1394524208 | NULL |
| 1394524209 | NULL |
+------------+------+
2 rows in set (0.00 sec)

mysql> UPDATE nase1 SET date = FROM_UNIXTIME(timestamp);
Query OK, 2 rows affected (0.05 sec)
Rows matched: 2  Changed: 2  Warnings: 0

mysql> ALTER TABLE `nase1` DROP `timestamp`;
Query OK, 2 rows affected (0.07 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> ALTER TABLE `nase1` CHANGE `date` `date` DATETIME NOT NULL;
Query OK, 2 rows affected (0.13 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM nase1;
+---------------------+
| date  |
+---------------------+
| 2014-03-11 08:50:08 |
| 2014-03-11 08:50:09 |
+---------------------+
2 rows in set (0.00 sec)
 
MySQL kann aus dem entsprechenden INTEGER-Wert ein Datum machen:
Code:
SELECT FROM_UNIXTIME( 1394524208 )
Du kannst daher den Import als BIGINT durchführen und anschließend den konvertierten ..
[/CODE]

Ok, also kann ich den Zeitstempel doch als großen Integer speichern, weil eine Antwort mal lautete:

Was soll die Frage? INT ist für Zahlen, nicht für Zeiten. Hat zwar beides 6 Buchstaben und beginnt mit Z, ansonsten aber nicht viel gemeinsam. Schau in die Doku Deiner DB, in PG gibt es TIMESTAMP und TIMESTAMPTZ für Zeiten.
 
Ok, also kann ich den Zeitstempel doch als großen Integer speichern, weil eine Antwort mal lautete:

Ja, sicher. Du kannst sie auch als TEXT oder als animiertes GIF-Image speichern. Der Punkt ist einfach, daß Datenbanken diverse Datentypen mit sich bringen, deren Verwendung Vorteile hat. Zum Beispiel Rechenoperationen, Indexunterstützung oder Constraints.
 
Werbung:
Zurück
Oben