FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 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 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; 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 |
|
|
|