2012-06-06 24 views
104

Estoy almacenando el último tiempo de inicio de sesión en MySQL en, datetime -type filed. Cuando los usuarios inician sesión, quiero obtener la diferencia entre la última hora de inicio de sesión y la hora actual (que obtengo usando NOW()).Calcular la diferencia entre dos fechas en MySQL

¿Cómo puedo calcularlo?

+0

http://stackoverflow.com/questions/2546053/mysql-difference-between-two-timestamps-in-days/28451483#28451483 – Kamlesh

Respuesta

207

USE TIMESTAMPDIFF Función MySQL. Por ejemplo, puede utilizar:

SELECT TIMESTAMPDIFF(SECOND, '2012-06-06 13:13:55', '2012-06-06 15:20:18') 

En su caso, el tercer parámetro de la función TIMSTAMPDIFF sería el momento de inicio de sesión actual (NOW()). El segundo parámetro sería el último tiempo de inicio de sesión, que ya está en la base de datos.

+0

Es para actualizar el último inicio de sesión ¿verdad? lo que quiero es como en stackoverflow tu pregunta publicada hace 2 años, hace 30 segundos, hace 2 minutos ... etc. Quiero un tipo de funcionalidad similar. Por ejemplo, hay una tabla que dice SOLICITUDES (id, mensaje, marca de tiempo). la marca de tiempo mientras se almacena será AHORA(). Mientras ejecuto una consulta, seleccione * de las solicitudes, en lugar de mostrar ese valor, debe mostrar la identificación, el mensaje y la cantidad de solicitudes de devolución de tiempo. –

+0

Mientras estoy ejecutando la consulta, SELECCIONE TIMESTAMPDIFF (SEGUNDO, AHORA(), 'seleccione lastLoginTime desde peticiones donde id =' 2 '') .. Devuelve NULL. ¿Alguna idea de por qué? –

+0

¿cuál es el resultado de seleccionar lastLoginTime desde solicitudes donde id = '2'? – FSP

Cuestiones relacionadas