2011-10-14 15 views
19

Ho una tabella con un campo data, con la data umana come: '2008-01-08 19:23:32' Ora devo copiare questo campo più alcuni altri campi della stessa tabella in un'altra tabella, ma la data deve essere in timestamp unix.Come convertire la data umana in unix timestamp in Mysql?

Esiste una funzione in mysql che converte data umana in unix timestamp all'interno della query stessa?

+2

Solo una nota, se la data memorizzata nella tabella non è in UTC, allora potrebbe essere necessario convertirlo in fuso orario UTC e poi chiamare UNIX_TIMESTAMP(). Non sono sicuro che 'unix_timestamp()' converta automaticamente il datetime in UTC prima di calcolare il timestamp. –

+0

Solo una nota .. questo è un tipo di campo 'datetime', non il tipo di campo 'date'. C'è una differenza. – DevlshOne

risposta

42
mysql> select unix_timestamp('2008-01-08 19:23:32'); 
+---------------------------------------+ 
| unix_timestamp('2008-01-08 19:23:32') | 
+---------------------------------------+ 
|       1199849012 | 
+---------------------------------------+ 
1 row in set (0.04 sec) 

trovato qui: http://www.epochconverter.com/

4

UNIX_TIMESTAMP() Dovrebbe fare il trucco!

da MySQL Documenti:

Se chiamato con nessun argomento, restituisce un timestamp Unix (secondi dal '1970-01-01 00:00:00' UTC) come numero intero senza segno. Se UNIX_TIMESTAMP() viene chiamato con un argomento data, restituisce il valore dell'argomento come secondi da "1970-01-01 00:00:00" UTC. la data può essere una stringa DATE, una stringa DATETIME, un TIMESTAMP o un numero nel formato YYMMDD o YYYYMMDD. Il server interpreta la data come valore nell'ora corrente e la converte in un valore interno in UTC.

mysql> SELECT UNIX_TIMESTAMP(); 
     -> 1196440210 
mysql> SELECT UNIX_TIMESTAMP('2007-11-30 10:30:19'); 
     -> 1196440219 
0

Sì. SELEZIONA UNIX_TIMESTAMP (colonna) dalla tabella

3
SELECT UNIX_TIMESTAMP('2007-11-30 10:30:19'); 
Problemi correlati