Foros del Web » Programando para Internet » PHP »

Cuestión de tiempo

Estas en el tema de Cuestión de tiempo en el foro de PHP en Foros del Web. Estoy haciendo un programa para controlar el tiempo que cada trabajador dedica a una tarea en concreto. ¿Cuál creéis que es el formato de campo ...
  #1 (permalink)  
Antiguo 20/12/2005, 17:25
 
Fecha de Ingreso: octubre-2003
Mensajes: 109
Antigüedad: 14 años, 2 meses
Puntos: 1
Cuestión de tiempo

Estoy haciendo un programa para controlar el tiempo que cada trabajador dedica a una tarea en concreto.

¿Cuál creéis que es el formato de campo más adecuado para guardar el inicio y el fin del trabajo?

Yo había pensado que fuesen de tipo time pero luego me encuentro con el problema de que no se comparar los dos campos para que me calcule cuántas horas:minutos:segundos se han destinado a esa tarea en concreto y me lo almacene en otro campo también de tipo time.

Lo que al principio me parecía tan fácil me está haciendo perder mucho tiempo.

Gracias por vuestra ayuda.
  #2 (permalink)  
Antiguo 21/12/2005, 05:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si hablas de Base de datos (al mencionar el termino "campo") tendrás que especificar que Base de datos usas: Mysql? ..

Mysql como toda BD tiene su própio tipo de datos para gestionar fechas: campos tipo DATE o DATETIME .. (entre otros) y dentro del SQL própio de Mysql tienes funciones para trabajar con fechas, hacer cálculos con ellas .. y en su defecto formatear fechas hacia otro tipo de formatos como un Unix TimeStamp (que es lo que trabaja "time()" de PHP) para operar con ese dato.

Por mi parte siempre recomiendo tratar el tema de manejo de datos si es con BD con el "SQL" (lenguaje estructurado de consultas) que para eso está, dejando el trabajo a la BD .. no mezclando "PHP" por médio para un proceso que con más uso de SQL se puede solventar en la mayoría de casos.

Otro detalle es el tema que mencionas de hacer un cálculo y almacenarlo en otro campo. Hay siempre está la discursión de "espacio" vs "tiempo proceso", es decir .. el dilema está en sacrificar más espacio en tu BD para almacenar ese dato o calcularlo cuando lo necesites obtener en función de los otros parámetros que ya almacenas. Ten presente para tomar esta decisión:

Si cambias un dato del "tiempo inicio o fin" .. y almacenas ese dato en otro campo de tu Tabla, .. tendrás que implementar rutinas para ver si el dato cambió .. esto es fácilmente controlable si sólo accedes a esa BD por un script PHP .. pero si accedes directamente a los datos (por "detras") tendrás problemas. Por otro lado el beneficio de hacer el cálculo sólo cuando los datos origen cambian te dará un mejor rendimiento en tus consultas SQL pues no tendras que realizar constantemente el cálculo. En muchos casos ese tiempo de proceso podría ser "despreciable" (de todas formas hay que hacer pruebas -reales- para decidir si realmente en tu caso particular ese tiempo de proceso es o podría ser "despreciable").

Un saludo,
  #3 (permalink)  
Antiguo 21/12/2005, 15:17
 
Fecha de Ingreso: octubre-2003
Mensajes: 109
Antigüedad: 14 años, 2 meses
Puntos: 1
Sí, es con mysql. El tipo de campo que mejor se ajusta es time.

Pero mi pregunta es ¿cómo después puede hacer la resta del campo inicio y fin para obtener el tiempo total dedicado a una tarea en concreto? ¿Se puede hacer con SQL? ¿Alguien sabe cómo?

Gracias de nuevo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:20.