![]() |
Where Fecha+Mes=Hoy
Hola a tod@s:
Estoy trabajando con tablas DBF y DELPHI 5. Tengo una tabla con un campo Fecha y un campo numérico donde se graba un plazo en meses. ¿Cómo puedo hace la consulta Where Fecha+Meses=Hoy? Where Fecha+(30*Meses) no me sirve, ya que no es exacto al tener los meses entre 29 y 31 días. Saludos. |
Según tu planteamiento el plazo debe de darse en días y no en meses:
30, 60 ó 90, de esta manera al sumarle 30, 60 ó 90 días obtendrás los vencimientos exactos que pretendes. Un Saludo. |
Cita:
El plazo me lo da en meses. Suponiendo que el plazo fuese 10 meses a partir de la fecha de hoy, 29/Ene/2007, el vencimiento debería ser el día 29/Nov/2007. Sin embargo, si a la fecha de hoy, 29/Ene/2007, sumas 300 días (10x30), el resultado es 25/Nov/2005, es decir, 4 días antes de la fecha de vencimiento. Por lo tanto, tal como comenté en el hilo anterior, Where Fecha+(30*Meses) no me sirve. :) En cualquier caso gracias por tu interés. |
Pues suma los meses al mes de la fecha de inicio, luego tendras que comprobar que el dia exista en el mes final (p. ej. 31/11/****) y actuar como consideres oportuno.
|
Ivanzinho:
O no entiendo tu respuesta, o tu solución no me sirve. Se trata de una tabla con varios registros, que obviamenten contienen fechas y plazos diferentes en los respectivos campos. Se trata de hacer una consulta de los registros vencidos, y no realizar un cálculo de una fecha determinada. Algo así como esto...
Saludos y gracias. |
Pues para dbf se me ocurre algo como
Igual no es una buena opción, pero así de pronto y para dbf no se me ocurre otra cosa, todo sería mejorar esto. El problema que te comentaba antes es para los dias que no existen, por ejemplo si tienes un registro del 31/1/**** con un mes de vencimiento te daria fecha vencimientos el 31/2/**** la cual no existe por lo que el registro saldría como vencido el primer día del mes siguente (no se si es como lo quieres tratar) Lo dicho, esto es solo una idea, quiza muy mala y que puede tener muchos fallos ya que no me pare a probarla en profundidad, que habría que ir depurando para que se adaptase a tus necesidades. Pruebalo, depuralo, mejoralo y ya me contaras |
Ivanzinho, no lo he probado, aunque creo que no me voy a complicar demasiado y voy a optar por utilizar TTables con índices. Probablemente vaya hasta más rápido.
Tal como tú propones, ¿serán demasiados cálculos para que la consulta SQL sea rápida? La verdad es que no lo sé, pero probablemente sea lenta. Saludos y gracias. |
Creo que con SQL va a ser dificil solventar la papeleta, porque por ejemplo si le sumamos 4 meses al mes 10, nos da 14, mes que no existe.
Si no tenemos en cuenta el SQL, con programación en Delphi, si que podemos sumar meses sin problemas de este tipo: Un ejemplo.
Solución que propongo: Crear una tabla temporal con un campo calculado y quedaría resuelto. Un Saludo. |
Cita:
Cita:
Un saúdo. |
Cita:
Creo que SQL es una herramienta muy útil y rápida, pero a la hora de realizar algunas consultas y cálculos el uso de TTables siguen siendo la mejor opción. Para serte sincero, yo esperaba alguna función simple, algo así como un AddMonth(Fecha,Meses). Saludos. |
| La franja horaria es GMT +2. Ahora son las 22:15:58. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi