Ver Mensaje Individual
  #9 (permalink)  
Antiguo 01/10/2014, 10:17
Avatar de jessicamcav13
jessicamcav13
 
Fecha de Ingreso: septiembre-2014
Mensajes: 29
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: Usar un trigger para cambiar el formato fecha

Hola de nuevo.

Voy a intentar contestar a todas vuestras preguntas y dudas sobre mi tema, a ver si me podéis ayudar a encontrar la solución más óptima.

Dispongo de un aparato que es un reloj de fichaje, es decir, captura la fecha y la hora a la que los empleados salen y entran del trabajo. Y luego quiero mostrar esos datos en una tabla de una página web para calcular su jornada y las horas que debe (de hecho, ya lo hice).

El aparato se conecta a un ordenador a través de un programa llamado Attendance Manager (se encuentra en internet y es gratuito), y desde allí se puede extraer los datos que almacena el reloj, exportándolos en el formato de excell, sql y otros muchos más. Los extraigo como sql y cuando abro el archivo sql, me aparecen tantos inserts como veces haya fichado los empleados, de esta manera:
INSERT INTO fichajes (Name,sTime,VerifyFlag,MachineName,checktype,senso id,workcode,sDate, Pin) VALUES ('Ramón','12/09/2014 11:00:00', 'FP/PW/RF/F',1,'I',1,0,'12/09/2014',1)

Puedo ponerle el nombre de la tabla en el reloj, para que me lo ponga en el insert.

A mi las que me interesan son sTime,sDate y Pin que es como si fuera la ID del usuario. Como veis, no puedo tener clave primaria... Lo malo es que genera esta tabla y lo mejor sería que generara 3, 1 con las fechas, otra con los tiempos y una renacida...pero no es el caso, tengo que adaptarme al reloj.

Los inserto en mysql y previamente he creado la tabla fichajes y he creado las tablas con los mismos nombres que me dice el insert (y por tanto, elijo el formato en el que quiero que estén)


De momento los inserts los hago yo manualmente, pero quiero automatizarlo en un futuro, con un .bat para que me lo inserte en el servidor y leerlo yo después en php (es un tema a parte y no sé si podré hacerlo, pero al caso...).
Lo mejor sería que sTime tuviera formato DATETIME, pero al hacer el insert, inserta el 0000-00-00 00:00:00, porque el formato DATETIME es YYYY-MM-DD HH:MM:SS y los datos de sTime están en dd/mm/yyyy h:mm:ss. Por eso lo puse tipo varchar...Podría ponerle una máscara, pero entonces ya no sería automático, por eso pensé en la posibilidad del TRIGGER, para que me cambiara el formato después de insertar los datos en la tabla.

Pero me encuentro con un problema a la hora de mostrarlos en una tabla, por orden, ya que al ser string, lee caracter por caracter y entonces cuando en un día hay por ejemplo 2 fichajes a las 9 y a las 14, el 9 será mayor que el 1 de las 14, entonces poner las 9 detrás de las 14...(No sé si me explico...)

Aqui un ejemplo:

Al tener ese 9:00:00 luego también me calcula mal la jornada(H.Jornada) y las horas que debe (Saldo)...
He mirado si el programa que extrae los datos del reloj tiene alguna opción para cambiar el formato en el que me exporta la tabla sTime pero no me hace caso...Lo he hecho de maneras distintas y no me sale en el formato que yo le he indicado...

Y ahora me pregunto, ¿qué debo hacer para que la hora me aparezca correctamente?

Gracias por vuestro tiempo.

Última edición por jessicamcav13; 01/10/2014 a las 10:24