Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-09-2005
MaSSaKKre MaSSaKKre is offline
Miembro
 
Registrado: sep 2005
Posts: 34
Poder: 0
MaSSaKKre Va por buen camino
Question como hacer consulta SQL con fecha usando Between

Hola, un saludo a todos los que lean este hilo.
antes que nada me presento, me llamo Eduardo, soy de México

Tengo un problema y quisiera ver si alguien ha pasado por lo mismo y si logro solucionar el problema me pueda ayudar.

Mi situación radica en que... estoy haciendo un sistema para el control de Infracciones (Multas a conductores), entre las tantas consultas que he realizado con Delphi 5 y SQL encontre un problema al momento de intentar hacer una consulta donde me muestre a las personas que han sido Infraccionadas en cierto mes.
Por ejemplo, ahora es septiembre y me gustaria saber que personas fueron infraccionadas en Marzo.

Tengo una consulta en la que puedo ver a los que fueron infraccionados en un dia específico, utilizo como parametro de búsqueda un control DateTimePicker1, mi consulta queda asi:
Código:


SELECT CONTEOINFRACCIONES.NUM_CONDUCTOR,FOLIOULTIMAINFRACCION,INFRACCION.NUMFOLIO, FECHAULTIMAINFRACCION, VECESINFRACCIONADO,NOMBRE, APE_PAT,APE_MAT,CONDUCTOR.NUM_CONDUCTOR, LICENCIA, NUMFOLIO, STATUS, FECHAINFRACCION, NUMINFRACCION

FROM CONTEOINFRACCIONES, CONDUCTOR, INFRACCION

WHERE VECESINFRACCIONADO>=1 AND CONTEOINFRACCIONES.NUM_CONDUCTOR = CONDUCTOR.NUM_CONDUCTOR AND FOLIOULTIMAINFRACCION=NUMFOLIO AND STATUS ='NO PAGADO' AND FECHAULTIMAINFRACCION =:FECHA

esta consulta funciona perfectamente.

Tengo otra que es para saber cuales fueron infraccionados en el mes actual, me quedo de la siguiente manera:

Código:
 
SELECT CONTEOINFRACCIONES.NUM_CONDUCTOR,FOLIOULTIMAINFRACCION,INFRACCION.NUMFOLIO, FECHAULTIMAINFRACCION, VECESINFRACCIONADO,NOMBRE, APE_PAT,APE_MAT,CONDUCTOR.NUM_CONDUCTOR, LICENCIA, NUMFOLIO, STATUS, FECHAINFRACCION, NUMINFRACCION

FROM CONTEOINFRACCIONES, CONDUCTOR, INFRACCION

WHERE VECESINFRACCIONADO>=1 AND CONTEOINFRACCIONES.NUM_CONDUCTOR = CONDUCTOR.NUM_CONDUCTOR AND FOLIOULTIMAINFRACCION=NUMFOLIO AND STATUS ='NO PAGADO' AND FECHAULTIMAINFRACCION BETWEEN :FECHAMENOS AND :FECHAMAS

en donde los parámetros FECHAMENOS y FECHAMAS son los siguientes:

procedure TESTADISTICAINFRACCIONES.BitBtn1Click(Sender: TObject);
VAR
MAS, MENOS,MES:tdatetime;
begin
//defino las variables
MAS:=IncMonth(DATE,1);
MENOS :=IncMonth(DATE,-1);

y ya en mi query las jalo asi

Código:
QUERY4.CLOSE;
QUERY4.Params[0].AsDate := MENOS;
QUERY4.Params[1].AsDate := MAS;
QUERY4.OPEN;
en la consulta anterior el problema radica en que si la fecha actual es 13 de Septiembre 2005, entonces me avienta de resultados los datos que esten comprendidos con las fechas desde el 13 de Agosto hasta el 13 de Octubre y se supone que solo quiero ver las que esten comprendidas en el MES ACTUAL.

Creo que si alguien me ayuda a solucionar el problema anterior, podré utilizar mas o menos el mismo tipo de consultar para solucionar mi problema principal que es el de buscar las personas infraccionadas en un mes en específico.

Creo que necesito saber de forma automatica el primer dia y el ultimo dia del mes (MES SELECCIONADO PARA LA CONSULTA) para así poder hacer un Between en SQL con la fecha proporcionada y podiendo calcular de antemano su primer dia y su ultimo dia del mes.

Ojala me haya podido explicar bien y me puedan comprender sobre la duda que tengo y vaya... mejor aun, que alguien me pueda ayudar.

Saludos
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 13:49:18.


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
Copyright 1996-2007 Club Delphi