FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour filtro entre fechas
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
filtro entre fechas
Posted: Tue Jun 25, 2019 01:26 PM
Colegas, trabajo con Mysql y necesitaría hacer una consulta de la siguiente manera:

Registro
Code (fw): Select all Collapse
desde = "20/05/2019", hasta = "27/05/2019"


condición consulta
Code (fw): Select all Collapse
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
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: filtro entre fechas
Posted: Tue Jun 25, 2019 02:48 PM
Horacio:

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

Code (fw): Select all Collapse
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
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Re: filtro entre fechas
Posted: Tue Jun 25, 2019 03:24 PM
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 cuyos campos entre otros se encuentran "desde" y "hasta", quiero filtrarlos de acuerdo a esos campos. Supongamos que tengo un registro en la tabla con estos datos

Code (fw): Select all Collapse
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
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: filtro entre fechas
Posted: Tue Jun 25, 2019 03:38 PM
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 cuyos campos entre otros se encuentran "desde" y "hasta", quiero filtrarlos de acuerdo a esos campos. Supongamos que tengo un registro en la tabla con estos datos

Code (fw): Select all Collapse
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... :-)

WHERE campo_fch BETWEEN fch_desde AND fch_hasta

Code (fw): Select all Collapse
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2
Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: filtro entre fechas
Posted: Tue Jun 25, 2019 03:43 PM

Horacio:

Creo ya entendí tu pregunta, son dos campos 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
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Re: filtro entre fechas
Posted: Tue Jun 25, 2019 03:46 PM

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

Saludos

Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: filtro entre fechas
Posted: Tue Jun 25, 2019 03:51 PM
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... :-)

Code (fw): Select all Collapse
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!
Posts: 84
Joined: Wed Oct 24, 2007 12:48 PM
Re: filtro entre fechas
Posted: Tue Jun 25, 2019 05:18 PM

Hola, creo que valdría :

( desde <= hasta1 and hasta >= desde1 )

Un saludo.

Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: filtro entre fechas
Posted: Tue Jun 25, 2019 05:30 PM
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... :-)
Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Re: filtro entre fechas
Posted: Tue Jun 25, 2019 05:36 PM

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

Saludos

Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: filtro entre fechas
Posted: Tue Jun 25, 2019 05:42 PM
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... :-)
Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: filtro entre fechas
Posted: Tue Jun 25, 2019 07:07 PM

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
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Re: filtro entre fechas
Posted: Wed Jun 26, 2019 12:01 AM
Armando, Los registros pertenecen a una tabla de licencias. poseen dos campos: "desde" y "hasta" que me indican la duración de la licencia. supongamos que tengo un registro de la siguiente manera:

Registro:
Code (fw): Select all Collapse
desde = '2019-05-18', hasta = '2019-05-28'


Si hago la siguiente consulta:
Code (fw): Select all Collapse
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
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: filtro entre fechas
Posted: Wed Jun 26, 2019 03:45 AM
This query shows all licences valid during the full period from 2019-05-20 to 2019-05-26.
Code (fw): Select all Collapse
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 (fw): Select all Collapse
select * from licencias where desde <= "2019-05-26" and hasta >= "2019-05-20"
Regards



G. N. Rao.

Hyderabad, India
Posts: 84
Joined: Wed Oct 24, 2007 12:48 PM
Re: filtro entre fechas
Posted: Wed Jun 26, 2019 06:21 AM
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.

Continue the discussion