Resta de fechas de un solo campo
Hola buenas noches
Es posible realizar una RESTA de fechas de un solo Campo de una misma etapa ya sea en PHP o SQL y que te de como resultado los dias:
tabla pro_c_trabajo
Código PHP:
id ----------- idproceso-----ctr_fecharealizacion
126 ---------- 128 --------2009-01-01
123 ---------- 128 --------2009-01-03
212 ---------- 129 --------2009-01-05
935 ---------- 128 --------2009-01-10
347 ---------- 128 --------2009-01-15
356 ---------- 128 --------2009-01-19
469 ---------- 252 --------2009-02-01
489 ---------- 128 --------2009-02-06
589 ---------- 128 --------2009-02-09
691 ---------- 128 --------2009-02-12
962 ---------- 128 --------2009-03-12
POR EJEMPLO EN ESTOS DATOS NECESITO RESTAR entre las fechas q le pertenecen a una etapa para ver el tiempo q se ha quedado en cada etapa...
Tomando como ejemplo los datos y que estan ya ordenados restaria:
2009-03-12 - 2009-02-12 = 30 dias
2009-02-12 - 2009-02-09 = 3 dias
2009-02-09 - 2009-02-06 = 3 dias
Hice este query pero no me saca la diferencia de dias, en algo esta fallando
[code]query_dias= " SELECT DISTINCT";
query_dias.=" f1.id, f1.idproceso, f1.ctr_fecharealizacion,";
query_dias.=" TO_DAYS(f2.ctr_fecharealizacion)-TO_DAYS(f1.ctr_fecharealizacion) AS diferencia_dias";
query_dias.=" FROM pro_c_trabajo f1";
query_dias.=" LEFT JOIN pro_c_trabajo f2 ON f1.id=f2.id AND f1.id
Chris Webstar
Veamos. ¿Guardas las fechas como cadenas, objetos de fechas de mysql o como timestamp?
En caso de cadenas, tío, piensa bien en la organización de datos. Vas a invertir mejor el tiempo cambiando esos campos a timestamp o date. Objetos de fechas, busca en la documentación de MySQL, pues tienen operadores SQL especiales para lo que necesitas. Y timestamps no son más que segundos, y con aritmética sencilla haces la operación. Tan sólo tienes que asegurarte de pasarlo todo a timestamps, restar, y pasar de vuelta.