SQL - SQL buscar entre fechas. Toda la tabla

 
Vista:
sin imagen de perfil
Val: 5
Ha disminuido su posición en 21 puestos en SQL (en relación al último mes)
Gráfica de SQL

SQL buscar entre fechas. Toda la tabla

Publicado por Luisaranda (3 intervenciones) el 12/05/2018 19:21:06
Hola
Tengo una tabla con varias columnas( campos), en las que se repiten determinadas fechas.
Quisiera buscar un rango de fechas( por ejemplo, desde el 21/12/2017 al 21/04/2018) en toda la tabla. Es decir en todas las columnas.
Lo he intentado, pero no doy con la solución.
Gracias!!
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
sin imagen de perfil
Val: 22
Ha aumentado su posición en 3 puestos en SQL (en relación al último mes)
Gráfica de SQL

SQL buscar entre fechas. Toda la tabla

Publicado por Ana (11 intervenciones) el 14/05/2018 09:55:42
Hola,

¿Nos podrías poner la estructura de la tabla que has creado?

Un saludo

Ana
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
sin imagen de perfil
Val: 5
Ha disminuido su posición en 21 puestos en SQL (en relación al último mes)
Gráfica de SQL

SQL buscar entre fechas. Toda la tabla

Publicado por luisaranda (3 intervenciones) el 14/05/2018 13:36:19
Gracias por contestar,Ana

La estructura es así:

se trata de una tabla con varios campos, llamada fechasvarias

La clave principal es el DNI de la persona.
El campo 1 se llama fechas de origen( es un campo de tipo fecha)
El campo 2 se llama fecha intermedia( es un campo de tipo fecha)
El campo 3 se llama fecha final ( es un campo de tipo fecha)

En los campos puede repetirse la fecha, ya que una persona puede tener una fecha de origen el día 23-12-2017; y esa misma fecha ser la fecha intermedia de otra persona.
Con lo cual la fecha: 23-12-2017 puede estar en varios campos.

Ejemplo que no consigo:

Yo he tratado de buscar todas las fechas existentes en la tabla, de abril a julio de 2014 de esta forma,pero no tengo éxito.

SELECT * from fechasvarias
where * between >=01/04/2014 and <31/07/2014;

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
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

SQL buscar entre fechas. Toda la tabla

Publicado por leonardo_josue (1173 intervenciones) el 14/05/2018 16:03:48
Hola luisaranda:

En SQL, sólo puedes especificar una condición por cada campo, es decir, que lo que quieres hacer al poner comodín asterisco (*) en el WHERE, simplemente no se puede. Debes de utilizar los operadores AND y OR para enlazar tantas condiciones como requieras en tu consulta, teniendo cuidado en la jerarquía de operadores. No nos dices con qué motor de BD's estás trabajando, pero para aprender un poco más de la jerarquía de operadores lógicos puedes checar esta liga:

https://docs.microsoft.com/es-es/sql/t-sql/language-elements/operator-precedence-transact-sql?view=sql-server-2017

El qué operadores utilizar dependerá completamente de tus requerimientos. Una opción podría ser así:

1
2
3
4
5
6
7
SELECT *
FROM fechasvarias
WHERE
(campo1 between 01/04/2014 and 31/07/2014) or
(campo2 between 01/04/2014 and 31/07/2014) or
...
(campoN between 01/04/2014 and 31/07/2014);

En tu ejemplo hacías una combinación rara entre el operador BETWEEN y los operadores relacionales <= y >=, por lo que te sugiero que antes de hacer algún intento leas un poco acerca de la sintaxis para el manejo de fechas en el DBMS con el que estés trabajando, así te evitaras errores tan obvios.

Haz la prueba y nos comentas.

Saludos
Leo.
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
sin imagen de perfil
Val: 5
Ha disminuido su posición en 21 puestos en SQL (en relación al último mes)
Gráfica de SQL

SQL buscar entre fechas. Toda la tabla

Publicado por luisa (3 intervenciones) el 14/05/2018 16:11:38
Hola, leonardo_josue

Muchas gracias!!
Funciona perfectamente.
Yo uso access y con acces también tenia que especificar cada condición por campo.
Creí que en sql podría hacerse en la totalidad de ellos con el asterísco.

Gracias otra vez ( leeré el docuemnto que me remites)

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