Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

datediff, between?

Estas en el tema de datediff, between? en el foro de Mysql en Foros del Web. Hola buenas.. tengo la siguiente duda.. tengo una tabla con los sgtes campos id= 1 , fecha_embarque= 2007-03-16 , fecha_desembarque= 2007-05-10 , dias_navegados= 56 .ejm ...
  #1 (permalink)  
Antiguo 10/05/2007, 16:54
OsX
 
Fecha de Ingreso: septiembre-2006
Mensajes: 10
Antigüedad: 17 años, 7 meses
Puntos: 0
datediff, between?

Hola buenas..
tengo la siguiente duda..
tengo una tabla con los sgtes campos id= 1 , fecha_embarque= 2007-03-16 , fecha_desembarque= 2007-05-10 , dias_navegados= 56 .ejm
entonces para saber los dias transcurridos entre fecha_embarque y fecha_desembarque que serian dias navegados como los describo yo, lo calculo con la sentencia datediff
$sql= " SELECT datediff( max(fecha_desembarque), min(fecha_embarque)) as total_dias FROM embarque where cod_embarque='1'";
HASTA AHY TODO BIEN,
pero mi duda es la sgte yo solo quiero que me calcule los dias navegados dentro de un mes osea del 2007-04-01- hasta el 2007-04-30 que debieran ser 30, para asi saber
cuantos dias navego en cada mes.
alguna sugerencia porfavor

Última edición por OsX; 11/05/2007 a las 16:49
  #2 (permalink)  
Antiguo 10/05/2007, 18:43
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Re: datediff, between?

Hola, puedes agregar a tu consulta AND MONTH(fecha_desembarque)=MONTH(fecha_embarque);
Saludos.
__________________
->Aprender es un proceso que incluye el error..
  #3 (permalink)  
Antiguo 11/05/2007, 14:14
OsX
 
Fecha de Ingreso: septiembre-2006
Mensajes: 10
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: datediff, between?

OK probaré
Gracias cala932
saludos.
  #4 (permalink)  
Antiguo 11/05/2007, 22:31
OsX
 
Fecha de Ingreso: septiembre-2006
Mensajes: 10
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: datediff, between?

al colocar la sgte sentencia que me señalastes, me agrupa solo las fecha_embarque y fecha_desembarque del mismo mes.

SELECT cod_embarque,fecha_embarque,fecha_desembarque, datediff( max(fecha_desembarque), min(fecha_embarque)) as Dias_Trabajados FROM embarque where MONTH(fecha_desembarque)='4' and MONTH(fecha_embarque)='4'
GROUP BY cod_embarque;


+--------------+----------------+-------------------+-----------------+
| cod_embarque | fecha_embarque | fecha_desembarque | Dias_Trabajados |
+--------------+----------------+-------------------+-----------------+
| 31 | 2007-04-02 | 2007-04-17 | 15 |
| 46 | 2007-04-02 | 2007-04-18 | 16 |
| 63 | 2007-04-01 | 2007-04-27 | 26 |
+--------------+----------------+-------------------+-----------------+

EXPLICO LO QUE NECESITO:
si la fecha_embarque= 2007-02-10 y fecha_desembarque= 2007-05-11
seleccionando el mes 2 MONTH=2 que corresponde a febrero me tendria que arrojar 18 dias ya que hizo el calculo desde el dia 10 hasta el dia 28 que es el ultimo dia del mes. ahora si yo le coloco month=3 me tendria arrogar 31 dias, ya que el mes de marzo osea month=3 tiene 31 dias ya que en ese mes paso los 31 dias navegando, porque su fecha de desembarco es el 2007-05-11. ahora bien, si coloco month=5 me deberia dar 11 dias, ya que lo calcula del dia 05-01 hasta el 05-11 que fue la fecha de desembarco.
existe alguna solucion??
como programo esta solucion??!?
espero que se haya entendido..
Saludoss!!!
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 21:07.