MySQL - seleccionar por fechas

 
Vista:

seleccionar por fechas

Publicado por Luis (4 intervenciones) el 08/01/2014 01:12:36
Hola

Tengo una base de datos , y una tabla donde guardo los artículos alquilados de la empresa
Los campos son articulos_alquilados , alquiler , fecha_salida , fecha_entrada
Alquiler puede tener dos valores , alquilado , o disponible

Tengo un formulario donde puedo anotar la fecha de salida , y la fecha de entrada
Necesito listar los artículos alquilados , para el rango de fechas que ponga en los dos campos de fecha (input type="date") del formulkario

¿Podríais indicarme como sería el código para bajar la lista de artículos alquilados , pera esas fechas determinadas , de la base de datos?

Lo pongo así :
$sql="SELECT articulos FROM tabla WHERE alquiler IN('alquilado') AND fecha_salida <= '$fechasalida' AND fecha_entrada >= '$fechaentrada' ";
pero no funciona bien

Gracias

Saludos
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

seleccionar por fechas

Publicado por xve (1151 intervenciones) el 08/01/2014 07:40:52
Hola Luis, yo lo haría así:
$sql="SELECT articulos FROM tabla WHERE alquiler='alquilado' AND fecha_salida <= '$fechasalida' AND fecha_entrada >= '$fechaentrada' ";

recuerda que las fechas tienen que estar en formato ingles: yyyy-mm-dd

Coméntanos, ok?
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

seleccionar por fechas

Publicado por Luis (4 intervenciones) el 08/01/2014 13:18:13
Hola XVE

Gracias por la respuesta , pero no funciona

El problema está en la selección de fechas , puedo tener un artículo alquilado o reservado , entre las fechas 1 de febrero , y 20 de febrero , y tiene que listarse como alquilado tanto si pongo a buscar por rango de fechas , fecha de salida 31 de enero , y de entrada 21 de febrero , como si pongo 2 de febrero , y 19 de febrero

La fecha de salida , debe estar comprendida entre las fechas de los campos , fecha_salida , y fecha_entrada , pero no al revés , no el campo fecha de salida comprendido entre los valores fecha entrada y fecha salida introducidos en el campo de fecha para buscar
Sino , lo haría poniendo fecha_salida BETWEEN '$fechaentrada AND $fechasalida , pero debe ser la $fechasalida la que esté entre los valores de los dos campos fecha_salida , y fecha_entrada , igual la fecha de entrada

¿Sabes como se podría hacer ?

Saludos , y gracias
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

seleccionar por fechas

Publicado por Luis (4 intervenciones) el 08/01/2014 14:13:24
Gracias XVE

Ya funciona
He puesto el código así

$sql="SELECT articulo FROM tabla WHERE alquiler IN('alquilado') AND fecha_salida <= '$fechaentrada' AND fecha_entrada >='$fechasalida ' ";

Ahora tengo que ponerlo para que tenga en cuenta también las horas , es decir , que si un cliente devuelve un artículo por la mañana de un determinado día , en la tarde de ese día ya pueda considerarse el artículo disponible , aunque por la mañana estaba alquilado . Ahora solo distingue por días completos

Cualquier indicación para que distinga también por horas , se agradecería

Saludos
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

seleccionar por fechas

Publicado por xve (1151 intervenciones) el 08/01/2014 18:28:27
Gracias por comentarlo Luis....

Sobre el tema de las fechas, se la puedes añadir sin problema a tu consulta sql... con el formato habitual: yyyy-mm-dd hh:mm:ss

No deberías de tener mayor problema.
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

seleccionar por fechas

Publicado por Luis (4 intervenciones) el 09/01/2014 15:55:54
Hola xve

Ya funciona , ya puedo seleccionar también por la hora de salida y de entrada

Tengo los datos de fecha y de hora en dos campos distintos , he concatenado las variables de fecha y de hora , y he concatenado los campos de fecha y hora con la función concat_ws (). Así funciona bien

$sql="SELECT articulo , concat_ws(' ' ,fecha_salida,hora_salida) as fechahorasalida , concat_ws(' ',fecha_entrada, hora_entrada) as fechahoraentrada FROM tabla WHERE alquiler IN('alquilado') AND concat_ws(' ',fecha_salida,hora_salida) <= '$fechahoraentrada' AND concat_ws(' ' ,fecha_entrada,hora_entrada) >='$fechahorasalida ' ";

Gracias por la colaboración

Saludos
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

seleccionar por fechas

Publicado por xve (1151 intervenciones) el 09/01/2014 21:24:05
Luis muchas gracias por comentarlo... no había utilizado nunca la función concat_ws(), ya que siempre utilizo el mismo campo para la fecha y hora, pero es bueno saberlo...
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