MySQL - ayuda loguin sencillo

 
Vista:
sin imagen de perfil
Val: 10
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

ayuda loguin sencillo

Publicado por Tomas (7 intervenciones) el 17/10/2016 22:01:53
Hola,estoy trabajando en Java.
Necesito comprobar si un usuario se ha logueado y lo que hice fue:

1. El usuario escribe sus credenciales, pulsa ok y se escribe la fila en la tabla.
2.Consulto la diferencia en MINUTOS del ultimo usuario logueado. Si es = 0 es porque se acaba de loguear.

1
Select nombreEmpleado from LOGIN where TIMESTAMPDIFF(MINUTE,(select hora from LOGIN order by hora DESC LIMIT 1), CURTIME() )=0

Pero CREO que hay excepciones, si el usuario se loguea a las 15:59:59 y al hacer la consulta de comprobación cambia a 16:00:00 la diferencia es negativa (16:00:00 - 15:59:59 ) --> 00 - 59 es -59.
Segun lei TIMESTAMPDIFF le resta el primero al segundo.


Alguien tiene alguna idea mejor?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 796
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

ayuda loguin sencillo

Publicado por xve (1151 intervenciones) el 18/10/2016 07:43:40
Hola Tomas, creo que el problema, es que TIMESTAMPDIFF() espera una fecha con su hora, no una hora sin fecha

Por lo que veo por curtime(), estas poniendo únicamente la hora!!!

Si pruebas esto te devuelve null:
1
SELECT TIMESTAMPDIFF(MINUTE,'06:38:29','07:39:29')

Pero si lo pruebas así funciona correctamente 61 minutos:
1
SELECT TIMESTAMPDIFF(MINUTE,'2016-10-18 06:38:29','2016-10-18 07:39:29')
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 10
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

ayuda loguin sencillo

Publicado por Tomas (7 intervenciones) el 18/10/2016 19:34:49
De acuerdo, pero no pude probarlo porque en mi tabla tengo la fecha separada de la hora, lo guardo como (DATE(NOW()), TIME(NOW)).
¿Cómo hago para juntarlos en un select , como lo que devuelve NOW ( ) ?
O cómo hago un insert de NOW ( ) ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 796
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

ayuda loguin sencillo

Publicado por xve (1151 intervenciones) el 18/10/2016 21:59:05
Si quieres juntar cadenas, puedes utilizar la función CONCAT() o poner el campo de tipo datetime para guardar con NOW() la fecha y hora.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 10
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

ayuda loguin sencillo

Publicado por Tomas (7 intervenciones) el 18/10/2016 22:52:15
Ya esta, lo que devuelve NOW () es de tipo TIMESTAMP, por lo que mi columna queda : fecha_hora timestamp not null.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar