2011-12-21 16 views
21

¿Hay alguna forma de convertir cadenas a la marca de tiempo UNIX en MySQL?String to timestamp en mysql

Por ejemplo, tengo la cadena 2011-12-21 02:20pm que debe estar en formato de marca de tiempo unix.

+1

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp – cristian

Respuesta

36

UNIX_TIMESTAMP() hace el truco:

SELECT UNIX_TIMESTAMP('2011-12-21 14:20:00'); 

Sin embargo, la función UNIX_TIMESTAMP() Sólo se necesita un estándar de MySQL fecha formateada. Si desea utilizar la notación AM/PM, tendrá que utilizar STR_TO_DATE primero como esto:

SELECT UNIX_TIMESTAMP(
    STR_TO_DATE('2011-12-21 02:20pm', '%Y-%m-%d %h:%i%p') 
); 
17

Aunque @ a'r ya ha dado la respuesta correcta, sigue siendo algo que me gustaría añadir aquí es que la función de dos parámetros STR_TO_DATE(), el formato de 'cadena de fecha' y la cadena de 'formato de fecha' deben tener una ubicación coincidente de '-' y ':'.

Por ejemplo siguiente 4 consultas devuelven exactamente el mismo resultado 2014-05-28 11:30:10

SELECT STR_TO_DATE('2014-05-28 11:30:10','%Y-%m-%d %H:%i:%s'); 

SELECT STR_TO_DATE('20140528 11:30:10','%Y%m%d %H:%i:%s'); 

SELECT STR_TO_DATE('2014-05-28 113010','%Y-%m-%d %H%i%s') ; 

SELECT STR_TO_DATE('20140528 113010','%Y%m%d %H%i%s'); 

Nota: los 2 params a STR_TO_DATE() función en cada consulta tiene una ubicación coincidente para '-' y ':'