none
disponibilidad rango de fechas RRS feed

  • Pregunta

  • hola bueno en esta ocacion estoy tratando de realizar una consulta con rango de fechas

    mi tabla habitacion:

    Cod_Hab

    ,tipo_hab,Habitacion,Detalle,Precio,Foto

    1           1           superior     xxxx       xx  xxx

    2           1            xxxxxx       xxx         x  xx

    reserva

    Num_Reserva

    Cod_Hab Fecha_Entrada Fecha_Salida

    1                     1          01/01/2011      10/01/2011

    y bueno supuestamente el una consulta el usuario pondra dos fechas para saver la disponibilidad fecha_inicial fechafinal que mas abajo lo he puesto como 'dd/mm/yy ' y bueno segun esos rangos que el usuario consulte pues deberia salir solo las disponibles 

    mas o menos toy tratando de resolverlo asi pero nada pues he probado con el betwen pero encierra ciertas fechas pero no logra lo que yo requiero.

    select * from HABITACION as h where Tipo_Hab =1 and not exists ( select * from RESERVA as C where C.Cod_Hab = h.Cod_Hab and ('28/01/2010' > =C.Fecha_Entrada and'28/01/2010' <= C.Fecha_Salida ) or ('31/01/2011' > =C.Fecha_Entrada and'31/01/2011' >= C.Fecha_Salida ))

    bueno lo dejo ahi pues ... en este foro me han ayudado mucho con las fechas .. un saludo

    jueves, 20 de enero de 2011 16:45

Respuestas

  • Estimado.

    Prueba siempre iniciando en tus SP o consultas la sentencia :

    SET DATEFORMAT DMY

    y asi no importa la collation del campo o la bd siempre sera ese formato de fecha y con confianza usa el between.

    Recomendacion: Por tema de orden no se compara VALOR VS CAMPO siempre es CAMPO VS VALOR.

    Para tu caso :

    select * from HABITACION as h where Tipo_Hab =1 and not exists ( select * from RESERVA as C where C.Cod_Hab = h.Cod_Hab and (C.Fecha_Entrada >=GETDATE() and C.Fecha_Salida>getdate())

    Espero te sirva , aqui estoy poniendo solo como consulta la fecha actual

    saludos

    Rolando Lau

    jueves, 20 de enero de 2011 20:03

Todas las respuestas

  • Estimado.

    Prueba siempre iniciando en tus SP o consultas la sentencia :

    SET DATEFORMAT DMY

    y asi no importa la collation del campo o la bd siempre sera ese formato de fecha y con confianza usa el between.

    Recomendacion: Por tema de orden no se compara VALOR VS CAMPO siempre es CAMPO VS VALOR.

    Para tu caso :

    select * from HABITACION as h where Tipo_Hab =1 and not exists ( select * from RESERVA as C where C.Cod_Hab = h.Cod_Hab and (C.Fecha_Entrada >=GETDATE() and C.Fecha_Salida>getdate())

    Espero te sirva , aqui estoy poniendo solo como consulta la fecha actual

    saludos

    Rolando Lau

    jueves, 20 de enero de 2011 20:03
  • bueno supuestamente en esas tengo fechas en reserva de habitacion que no deberian salir y pues he podido concretar que no salgan algunas pero hay otras que si salen y eso es mi eerros creo no fui concreto con la pregunta .. te agradesco tu ayuda ... amio .... pero espera otra respuesta mas en estod dias pues

    en mi tabla reserva

    fecha_entrada /// fecha_salida //codigo de habitacion

    01/01/2011  10/01/2011                      1

    en mi tabla habiaciones

    supongamos aun sea el año 2010 y sea noviembre... entoces yo puedo reservas dias antes de esa fecha, dias despues de esa fecha.  pero no puedo reservar que mi fecha_entrada sea

    02/10/2010      05/12/2011 pues ahi me debe de salir q no esta disponible pues

    o si quiero  reservar pues  para

    05/01/2011  20/05/2011 pues ahi no me debe de salir q no esa disponible

    hasta ahi compara el rango pues con el between pero  pero tomo mi uno de mis fecha que quiero y pues la compara pero en la otra no me sale pues ..

    ahora poniendo lo demas pues ><= etc pues .. fucnionapero si pongo una fecha con intervalo dentro de esas fecha pues me deja de funcionar pues ..  ... aver amios una ayuda mas

    osea lo que quiero es ni que la fecha inicial este dentro de esos intervalos ni que la fecha final tampoco ... y ni que las dos fechas estendentro de esas fechas .. o bien las dos tienes que  estar afuera de esos interbalos o nada pues ...  se antes o sea despues

    por que pueda ser que tenga una habitacio que lo han reservado por ejemplo para el mes de julio hasta mediados de agosto .. pero yo entonce spodria hacer una reserva para antes de esa fecha  como tambien podria hacer una reserva pero despues de su fecha de salida .. bueno espero me den una manito mas un saludo : la fecha es nvarchar

     

    sábado, 22 de enero de 2011 5:31