Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   comparar fecha actual con los meses del año (https://www.clubdelphi.com/foros/showthread.php?t=93062)

the walrus 07-05-2018 03:48:59

comparar fecha actual con los meses del año
 
hola gente anteriormente les comente que estaba haciendo un proyecto en delphi xe7 con componentes mydac (tmytable,tmyquery) cambie el gestor de base de datos ahora uso mysql workbench bueno mi pregunta es
como hacer una comparacion de la fecha actual con del mes lo que quiero hacer es cuando los registro que vence en el mes mayo aparezcan en una grilla todos los registros que vencen en dicho mes y sucesivamente con todos los meses, aprovechando la pregunta es posible cargar varias consultas en un solo query

espero que me puedan ayudar gracias.

duilioisola 07-05-2018 08:36:19

¿Qué significa esto?
Cita:

aparezcan en una grilla todos los registros que vencen en dicho mes y sucesivamente con todos los meses
Para los registros que estén dentro de un mes puede hacer un select así:
Código SQL [-]
/*
fecha_inicial = 01/05/2018
fecha_final = 31/05/2018 23:59:59
*/
select * from tabla
where
fecha >= :fecha_inicia and
fecha <= :fecha final

manelb 07-05-2018 15:34:41

Sobre la consulta de las fechas también podría ser algo así:

Código SQL [-]

/*Mes_de_la_consulta=4*/

Select * from tabla
where extract(Month from fecha)=: Mes_de_la_consulta

y en cuanto a varias consykltas en un solo query..., no se si te refieres a esto

Código SQL [-]

Select * from tabla
where (una_condicion)

union all

Select * from tabla
where (otra_condicion)

Saludos

the walrus 07-05-2018 16:35:03

Cita:

Empezado por duilioisola (Mensaje 526059)
¿Qué significa esto?

Para los registros que estén dentro de un mes puede hacer un select así:
Código SQL [-]
/*
fecha_inicial = 01/05/2018
fecha_final = 31/05/2018 23:59:59
*/
select * from tabla
where
fecha >= :fecha_inicia and
fecha <= :fecha final

hola, gracias por responder
no todo los registros tienen una fecha inicial y fecha final en el mismo mes por ejemplo :
fecha inicial : 10/10/17
fecha final : 5/5/18
con respecto a la otra pegunta que no me exprese muy bien es que los registros con fecha final se muestren cuando sea el mismo mes o sea si tengo registros que vencen en el mes de septiembre que se muestren en el mes de septiembre
saludos

duilioisola 07-05-2018 16:44:05

Entonces, como dice manelb:

Código SQL [-]
/*
Para los vencimientos de septiembre 
Mes_de_la_consulta = 9
*/

select *
from tabla
where
extract(month from fecha_final) = :mes_de_la_consulta

the walrus 07-05-2018 16:45:29

Cita:

Empezado por manelb (Mensaje 526065)
Sobre la consulta de las fechas también podría ser algo así:

Código SQL [-]

/*Mes_de_la_consulta=4*/

Select * from tabla
where extract(Month from fecha)=: Mes_de_la_consulta

y en cuanto a varias consykltas en un solo query..., no se si te refieres a esto

Código SQL [-]

Select * from tabla
where (una_condicion)

union all

Select * from tabla
where (otra_condicion)

Saludos

hola, gracias por responder con el tema de las consultas lo que quiero hacer es que los registros que vencen en un mes por ejemplo en mayo aparezcan en un formulario mi idea es hacer consultas de de los 12 meses del año una consulta por cada mes voy a probar lo que me dijiste y posteo el resultado gracias un saludo

the walrus 07-05-2018 16:46:39

Cita:

Empezado por duilioisola (Mensaje 526067)
Entonces, como dice manelb:

Código SQL [-]
/*
Para los vencimientos de septiembre 
Mes_de_la_consulta = 9
*/

select *
from tabla
where
extract(month from fecha_final) = :mes_de_la_consulta

lo voy a probar saludos

the walrus 08-05-2018 00:15:59

Cita:

Empezado por the walrus (Mensaje 526068)
hola, gracias por responder con el tema de las consultas lo que quiero hacer es que los registros que vencen en un mes por ejemplo en mayo aparezcan en un formulario mi idea es hacer consultas de de los 12 meses del año una consulta por cada mes voy a probar lo que me dijiste y posteo el resultado gracias un saludo

hola, no me dio el resultado que queria igual gracias por aportar

mamcx 08-05-2018 00:27:12

No es nada claro lo que preguntas. Porque no nos muestras una tabla con ejemplos?

the walrus 08-05-2018 01:31:08

hola, gracias por responder
mi tabla tiene estos campos
id_clientes
nombre
apellido
dni
compañia
vigencia_desde
vigencia_hasta
lo que quiero hacer es una consulta sql que compare el campo de vigencia_hasta con un mes del año y se muestre en otro formulario

hago un ejemplo todos los registros que tengan una vigencia_hasta en un mes en especifico por ejemplo el mes de junio y cuando llegue el mes de junio se muestren los registros que vencen en ese mes en un formulario.
gracias saludos

duilioisola 08-05-2018 15:48:45

Ante todo:
  • Te agradecería que utilizaras comas, puntos, mayúsculas y minúsculas.
  • Separa las frases para que sean cortas y comprensibles. (escribes de una manera muy críptica).
  • Lee nuevamente lo que has escrito antes de publicarlo, poniéndote en el lugar de quien desea ayudarte. Evite que esa persona tenga que suponer todo lo que no expliques.

No debes hacer 12 cosultas, una por cada mes.
Debes hacer una consulta con un parámetro y rellenar ese parámetro con el número del mes que deseas mostrar.

La consulta es la que te hemos mencionado en posts anteriores.
Quizás la única cosa a agregar sería el año, por si algo vence en el mes que pides, pero del año siguiente

Código SQL [-]
/*
Para los vencimientos de septiembre del 2018
Mes_de_la_consulta = 9
Anyo_de_la_consulta = 2018
*/

select *
from tabla
where
extract(month from vigencia_hasta) = :mes_de_la_consulta and
extract(year from vigencia_hasta) = :anyo_de_la_consulta

mamcx 08-05-2018 16:58:58

Cita:

Empezado por the walrus (Mensaje 526077)
mi tabla tiene estos campos

Si, y como se ven los datos iniciales? Y como se ven los resultados?

the walrus 08-05-2018 23:23:10

Cita:

Empezado por duilioisola (Mensaje 526098)
Ante todo:
  • Te agradecería que utilizaras comas, puntos, mayúsculas y minúsculas.
  • Separa las frases para que sean cortas y comprensibles. (escribes de una manera muy críptica).
  • Lee nuevamente lo que has escrito antes de publicarlo, poniéndote en el lugar de quien desea ayudarte. Evite que esa persona tenga que suponer todo lo que no expliques.

No debes hacer 12 cosultas, una por cada mes.
Debes hacer una consulta con un parámetro y rellenar ese parámetro con el número del mes que deseas mostrar.

La consulta es la que te hemos mencionado en posts anteriores.
Quizás la única cosa a agregar sería el año, por si algo vence en el mes que pides, pero del año siguiente

Código SQL [-]
/*
Para los vencimientos de septiembre del 2018
Mes_de_la_consulta = 9
Anyo_de_la_consulta = 2018
*/

select *
from tabla
where
extract(month from vigencia_hasta) = :mes_de_la_consulta and
extract(year from vigencia_hasta) = :anyo_de_la_consulta

hola, les doy un ejemplo de lo que necesito, supongamos que pago el seguro de mi auto hoy 8 de mayo de 2018 y vence el 8 de septiembre de 2018, lo que yo quiero es que se me notifique a principio del mes de septiembre en un formulario, o sea quiero que a principio del mes en que vence la poliza me llegue una notificación

the walrus 09-05-2018 00:06:22

Cita:

Empezado por mamcx (Mensaje 526104)
Si, y como se ven los datos iniciales? Y como se ven los resultados?

hola esta es mi consulta sql
Código SQL [-]
SELECT * 
FROM clientes 
WHERE DATE(vigencia_hasta) > CURDATE() 
order by nombre

cuando ejecuto la consulta solo muestra los registros superior a la fecha actual osea si tengo un registro con la fecha de vencimiento 2/5/18 no lo muestra, que quiero hacer es que todos los registro que tengan una fecha de vencimiento en el mes de mayo se muestren durante el mes de mayo

mamcx 09-05-2018 01:22:18

Te pregunto como se ven los datos y me respondes con como es la consulta?

Plop!

----

Basicamente ya te han resuelto el problema. Pero si no lo ves es que necesitas ponerlo de forma "visual". Literalmente. Haz una tabla en excel o lo que sea y pon los datos.

the walrus 09-05-2018 02:10:26

perdón no entendí tu pregunta

the walrus 09-05-2018 03:20:32

Cita:

Empezado por duilioisola (Mensaje 526098)
Ante todo:
  • Te agradecería que utilizaras comas, puntos, mayúsculas y minúsculas.
  • Separa las frases para que sean cortas y comprensibles. (escribes de una manera muy críptica).
  • Lee nuevamente lo que has escrito antes de publicarlo, poniéndote en el lugar de quien desea ayudarte. Evite que esa persona tenga que suponer todo lo que no expliques.

No debes hacer 12 cosultas, una por cada mes.
Debes hacer una consulta con un parámetro y rellenar ese parámetro con el número del mes que deseas mostrar.

La consulta es la que te hemos mencionado en posts anteriores.
Quizás la única cosa a agregar sería el año, por si algo vence en el mes que pides, pero del año siguiente

Código SQL [-]
/*
Para los vencimientos de septiembre del 2018
Mes_de_la_consulta = 9
Anyo_de_la_consulta = 2018
*/

select *
from tabla
where
extract(month from vigencia_hasta) = :mes_de_la_consulta and
extract(year from vigencia_hasta) = :anyo_de_la_consulta

hola da los resultados que quiero, ahora como puedo hacer para que los registros se borren automáticamente y cargue registros del mes de octubre gracias

Casimiro Notevi 09-05-2018 09:26:32

Cita:

Empezado por the walrus (Mensaje 526128)
hola da los resultados que quiero, ahora como puedo hacer para que los registros se borren automáticamente y cargue registros del mes de octubre gracias

Pues ejecutas la misma sentencia con el parámetro 10

the walrus 09-05-2018 19:03:35

hola, si pero me gustaría que la consulta que extrae el año y el mes de octubre se ejecute en el mes de octubre, y los registros de mes de septiembre se borren automáticamente.
vi que se puede hacer con eventos mysql es posible trabajar con ese método. gracias

Casimiro Notevi 09-05-2018 20:33:10

No se entiende nada de lo que quieres.


La franja horaria es GMT +2. Ahora son las 15:11:41.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi