2010-08-15 5 views
7

Ich brauche einen Zeitstempel-Feld für eine Tabelle zu erstellen, die Zeilen nach einer gewissen Zeit ablaufen müssen ist. Wenn ich die folgende verwenden:als Epochenzeit mit Standard-

`timestamp` TIMESTAMP DEFAULT NOW(), 

Es zeigt die Zeit in einem für Menschen lesbaren Format, wäre es viel einfacher, wenn ich es in Epoche Zeit haben könnte, so kann ich mit Sekunden berechnen. Gibt es eine Möglichkeit, ein Feld zu erstellen, das die aktuelle Zeit anzeigt, wenn eine Zeile in Epoch Times erstellt wird? Vielen Dank!

Antwort

6

Sie können die UNIX_TIMESTAMP() Funktion in Ihren SELECT Aussagen verwenden, wie im folgende Beispiel:

CREATE TABLE test_tb (`timestamp` TIMESTAMP DEFAULT NOW()); 
INSERT INTO test_tb VALUES (DEFAULT); 

SELECT UNIX_TIMESTAMP(`timestamp`) epoch, `timestamp` FROM test_tb; 
+------------+---------------------+ 
| epoch  | timestamp   | 
+------------+---------------------+ 
| 1281834891 | 2010-08-15 03:14:51 | 
+------------+---------------------+ 
1 row in set (0.00 sec) 
+0

Ah ich sehe, so dass keine Möglichkeit haben, es ist standardmäßig auf diese Weise eingegeben. Aber ich kann es in meinen 'Select'-Anweisungen verwenden, besser als nichts. Danke Daniel! Ich werde Sie als korrekt markieren, sobald SO es mir erlaubt. –

+1

@Ben: Tatsächlich speichert der 'TIMESTAMP'-Datentyp Datumsangaben im Epochformat, entsprechend den [docs] (http://dev.mysql.com/doc/refman/5.1/en/date-and-time-type -overview.html). Die SELECT-Anweisung gibt jedoch standardmäßig den Wert in "für Menschen lesbare Form" aus. Die Verwendung der Funktion 'UNIX_TIMESTAMP()' überschreibt diese Formatierung. –

+0

Ah, interessant. Vielen Dank. Ich schätze die Hilfe! –

Verwandte Themen