filtro entre fechas

Post Reply
horacio
Posts: 1270
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

filtro entre fechas

Post by horacio »

Colegas, trabajo con Mysql y necesitaría hacer una consulta de la siguiente manera:

Registro

Code: Select all

desde = "20/05/2019", hasta = "27/05/2019"
 
condición consulta

Code: Select all

desde1 -> "23/05/2019", hasta1 -> "25/05/2019" 
 
necesitaría que el registro aparezca en la consulta ya que los datos de la condición está contenida en el registro. Si la condición fuera "desde >= desde1 and hasta <= hasta1" ese registro quedaría excluido. Alguien sabe como hacerlo? espero se haya entendido y desde ya muchas gracias

Saludos
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: filtro entre fechas

Post by Armando »

Horacio:

Recuerda que MySQL maneja todo en tipo string, por lo tanto, si entendí, creo que deberías hacerlo así:

Code: Select all

LOCAL desde := DTOS(FechaInicial)
LOCAL hasta := DTOS(FechaFinal)

desde1 => desde .AND. hasta1 <= hasta
 
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
horacio
Posts: 1270
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: filtro entre fechas

Post by horacio »

Gracias por tu respuesta Armando. eso lo sé. Me parece que no se entiende lo que quise consultar. Quiero hacer una consulta en una tabla _ entre otros se encuentran "desde" y "hasta", quiero filtrarlos de acuerdo a _. Supongamos que tengo un registro en la tabla con estos datos

Code: Select all

desde = '2019-05-24' y hasta = '2019-05-27'
 
y quiero filtrar esa consulta con estas fechas: fechaDesde -> '2019-05-25' y fechaHasta -> '2019-05-26', quiero que la consulta me devuelva el registro antes mencionado ya que la fecha de los filtros está contenida en el intervalo de las fechas del registro. Espero se entienda

Saludos
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: filtro entre fechas

Post by joseluisysturiz »

horacio wrote:Gracias por tu respuesta Armando. eso lo sé. Me parece que no se entiende lo que quise consultar. Quiero hacer una consulta en una tabla _ entre otros se encuentran "desde" y "hasta", quiero filtrarlos de acuerdo a _. Supongamos que tengo un registro en la tabla con estos datos

Code: Select all

desde = '2019-05-24' y hasta = '2019-05-27'
 
y quiero filtrar esa consulta con estas fechas: fechaDesde -> '2019-05-25' y fechaHasta -> '2019-05-26', quiero que la consulta me devuelva el registro antes mencionado ya que la fecha de los filtros está contenida en el intervalo de las fechas del registro. Espero se entienda

Saludos
Usa BETWEEN, saludos... :shock:

WHERE campo_fch BETWEEN fch_desde AND fch_hasta

Code: Select all

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2
 
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: filtro entre fechas

Post by Armando »

Horacio:

Creo ya entendí tu pregunta, son _ de tipo fecha que están en el mismo registro, cierto?

Entonces la consulta debe funcionarte:

desde = "20190524" .AND. hasta = "20190527"

A ver si le atine :-)

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
horacio
Posts: 1270
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: filtro entre fechas

Post by horacio »

Gracias José por tu sugerencia, he visto con un solo campo de fecha, como sería con dos ? Desde ya muchas gracias.

Saludos
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: filtro entre fechas

Post by joseluisysturiz »

horacio wrote:Gracias José por tu sugerencia, he visto con un solo campo de fecha, como sería con dos ? Desde ya muchas gracias.

Saludos
Si vas usar 2 campos de fechas para tomar 2 rangos de fechas metes entre parentesis las validaciones, te lo coloco para que lo pruebes, ya que nunca he necesitado usar 2 fechas entre rangos, pero la logica seria algo asi...saludos... :shock:

Code: Select all

SELECT column_name(s)
FROM table_name
WHERE ( column_name1 BETWEEN value1 AND value2 ) AND/OR ( column_name2 BETWEEN value1 AND value2 ) 
 
Dios no está muerto...

Gracias a mi Dios ante todo!
gmart1
Posts: 65
Joined: Wed Oct 24, 2007 12:48 pm
Location: Alhaurin de la Torre (MALAGA)

Re: filtro entre fechas

Post by gmart1 »

Hola, creo que valdría :

( desde <= hasta1 and hasta >= desde1 )

Un saludo.
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: filtro entre fechas

Post by joseluisysturiz »

gmart1 wrote:Hola, creo que valdría :

( desde <= hasta1 and hasta >= desde1 )

Un saludo.
Con lo que dices no entiendo lo que quieres hacer, si lo que quieres es tomar en cuenta 2 fechas que esten entre un rango incluidas las fechas tomadas, con lo que te puse funciona, pero de verdad ya no se que es lo que quieres, me perdi...saludos...gracias... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
horacio
Posts: 1270
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: filtro entre fechas

Post by horacio »

José, parece que los tiros van por between. Haré unas pruebas y te comento. Gracias

Saludos
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: filtro entre fechas

Post by joseluisysturiz »

horacio wrote:José, parece que los tiros van por between. Haré unas pruebas y te comento. Gracias

Saludos
Fue lo que te sugeri desde un principio, gracias... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: filtro entre fechas

Post by Armando »

Amigos:

Lo que yo entendí es que no se trata de un rango de fechas, para ejemplificar lo que entendí,
supongamos que son campos con nombres, ejemplo:

José Ramírez
Horacio Rocha

Entonces lo que quiere es traer los registros de Horacio Rocha.

Nombre = "Horacio" .AND. Paterno = "Rocha"

Es así?

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
horacio
Posts: 1270
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: filtro entre fechas

Post by horacio »

Armando, Los registros pertenecen a una tabla de licencias. poseen _: "desde" y "hasta" que me indican la duración de la licencia. supongamos que tengo un registro de la siguiente manera:

Registro:

Code: Select all

desde = '2019-05-18', hasta = '2019-05-28'
 
Si hago la siguiente consulta:

Code: Select all

select * from licencias where desde >= "2019-05-20" and hasta <= "2019-05-26"
 
No obtendría el registro que definí al principio, sin embargo las fechas del where se encuentran dentro del rango del registro y eso es lo que necesitaría mostrar. Espero haber sido claro.

Saludos
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Re: filtro entre fechas

Post by nageswaragunupudi »

This query shows all licences valid during the full period from 2019-05-20 to 2019-05-26.

Code: Select all

select * from licencias where desde <= '2019-05-20' and hasta >= '2019-05-26'
 
The next query shows all licences valid for atleast one day or more during the period from 2019-05-20 to 2019-05-26.

Code: Select all

select * from licencias where desde <= "2019-05-26" and hasta >= "2019-05-20"
 
Regards

G. N. Rao.
Hyderabad, India
gmart1
Posts: 65
Joined: Wed Oct 24, 2007 12:48 pm
Location: Alhaurin de la Torre (MALAGA)

Re: filtro entre fechas

Post by gmart1 »

Hola, creo que valdría :

( desde <= hasta1 and hasta >= desde1 )

Un saludo.
Esta solución es la misma que te indica Mr. Rao en el segundo caso, cuando quieres que algún día del rango esté dentro de desde1:hasta1.

Si lo que quieres es que el periodo desde:hasta esté dentro de desde1:hasta1, osea que sea un subperiodo, te valdría :

( desde >= desde1 and hasta <= hasta1 )

Es la primera solución de Mr. Rao, aunque creo que ha cometido un pequeño error en los operadores mayor y menor, los ha invertido.

Un saludo.
Post Reply