2011-10-14 42 views
19

Tengo una tabla con un campo de fecha, con una fecha humana en ella como: '2008-01-08 19:23:32' Ahora tengo que copiar este campo más algunos otros campos de la misma tabla en otra tabla, pero la fecha debe estar en la marca de tiempo de Unix.¿Cómo convertir la fecha humana a la marca de tiempo de Unix en Mysql?

¿Hay alguna función en mysql que convierta la fecha humana a la marca de tiempo Unix dentro de la consulta misma?

+2

Sólo una nota, si la fecha almacenada en su tabla no está en UTC entonces puede que tenga que convertirlo en zona UTC primero y luego llamar UNIX_TIMESTAMP(). No estoy seguro de si 'unix_timestamp()' convierte automáticamente la fecha y hora a UTC antes de calcular la marca de tiempo. –

+0

Solo una nota ... este es un tipo de campo 'datetime', no' date'. Hay una diferencia. – DevlshOne

Respuesta

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) 

encontrado aquí: http://www.epochconverter.com/

4

UNIX_TIMESTAMP() Debería hacer el truco!

Desde MySQL Docs:

Si llama sin argumentos, devuelve una marca de tiempo Unix (segundos desde '1970-01-01 00:00:00' UTC) como un entero sin signo. Si se llama a UNIX_TIMESTAMP() con un argumento de fecha, devuelve el valor del argumento como segundos desde '1970-01-01 00:00:00' UTC. la fecha puede ser una cadena FECHA, una cadena DATETIME, un TIMESTAMP o un número en el formato YYMMDD o AAAAMMDD. El servidor interpreta la fecha como un valor en la zona de tiempo actual y la convierte a un valor interno en UTC.

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

Sí. SELECT UNIX_TIMESTAMP (columna) de la tabla

3
SELECT UNIX_TIMESTAMP('2007-11-30 10:30:19'); 
Cuestiones relacionadas