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

Consulta similar al BETWEEN ¿es posible?

Estas en el tema de Consulta similar al BETWEEN ¿es posible? en el foro de Bases de Datos General en Foros del Web. Tengo una tabla que tiene dos fechas: FechaInicio y FechaFin. Quiero hacer una consulta que me saque todos los registros donde la fecha del día ...
  #1 (permalink)  
Antiguo 16/04/2010, 11:39
 
Fecha de Ingreso: enero-2009
Mensajes: 50
Antigüedad: 15 años, 3 meses
Puntos: 0
Consulta similar al BETWEEN ¿es posible?

Tengo una tabla que tiene dos fechas: FechaInicio y FechaFin.

Quiero hacer una consulta que me saque todos los registros donde la fecha del día de hoy (fechaHoy) este comprendida entre FechaInicio y FechaFin.

Pensé que BETWEEN me vendría perfecto pero por lo que he leido el valor que quieres comprobar debe de ser una columna de la tabla mientras que en mi caso sería la fecha de hoy que es una variable.He probado la siguiente consulta pero no funciona:


"SELECT Id,IdResidente,IdMedicamento,Dia,Hora,Dosis FROM Prescripciones " + "WHERE Dia = 'Lunes' AND " + fechaHoy + " BETWEEN FechaInicio AND FechaFin";

¿Tengo algo mal o no es posible realizar esta consulta? Si no es posible ¿hay alguna otra forma de hacerlo?

Muchas gracias
  #2 (permalink)  
Antiguo 16/04/2010, 14:02
Avatar de Beakdan  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 4 meses
Puntos: 7
Respuesta: Consulta similar al BETWEEN ¿es posible?

Debería funcionar. Por lo menos en SQL Server funciona. Los campos de fecha ¿son efectivamente campos de tipo fecha o son varchars? He visto bases donde guardan las fechas como cadenas con formato como "16/4/2010". La comparación entre strings podría fallar con formatos donde guardan los valores sin padding.
Si son fechas, y el rango para la variable existe, quizá simplemente no hay registros para "Lunes".

Saludos.
  #3 (permalink)  
Antiguo 18/04/2010, 09:35
 
Fecha de Ingreso: enero-2009
Mensajes: 50
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Consulta similar al BETWEEN ¿es posible?

No sé, yo creo que algo falla. La verdad es que no estoy seguro del todo de que se pueda meter una variable porque en todos lados explican el between así:

SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2

Y yo lo quiero al revés, es decir mi value1 y value2 son columnas de la tabla mientras que column_name es una variable
  #4 (permalink)  
Antiguo 18/04/2010, 14:16
Avatar de Beakdan  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 4 meses
Puntos: 7
Respuesta: Consulta similar al BETWEEN ¿es posible?

Debe funcionar. Considera en primer lugar que el operador BETWEEN es tan solo una manera simple de expresar un rango delimitado por dos comparaciones y así fue definido en el standard SQL-92. Usando el ejemplo que publicaste...

WHERE column_name
BETWEEN value1 AND value2

Será transformado en:

WHERE column_name >= value1 AND column_name <= value2

Considera ahora el caso que está "al revés" como tú dices...

WHERE @value
BETWEEN Column1 AND Column2

Su equivalente es:

WHERE @value >= Column1 AND @value <= Column2

Lo cual sigue teniendo sentido. Si la primera columna tiene en efecto un valor menor o igual que la segunda columna, entonces no es el between el problema.

Saludos.

Última edición por Beakdan; 18/04/2010 a las 14:20 Razón: ortografía
  #5 (permalink)  
Antiguo 19/04/2010, 02:59
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 17 años, 9 meses
Puntos: 56
Respuesta: Consulta similar al BETWEEN ¿es posible?

Hola,
Porqué falla?
Quiero decir.... qué tipo de error te devuelve?
O es que los datos devueltos no son correctos?

Saludos.

Etiquetas: posible, similar
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 02:32.