FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Resta de datos Datetime SQL
Tengo un pequeño problema por que no se como realizar una resta entre dos datos (datetime) de una tabla de una BD mysql. Bueno, me explico...
Tengo la tabla 'Rentas' en donde tengo los campos 'fecha_devol' y 'dias_retraso', es en este último donde debo calcular los dias que han transcurrido a partir de la fecha de devolucion. Para ello se me ocurre realizar una resta entre la fecha actual y la registrada en 'fecha_devol'. Pero no puedo hacerlo. Les agradecería mucho si pudieran decirme cómo hacer esto o tuvieran alguna mejor solución. |
#2
|
||||
|
||||
Mira si no recuerdo mal los campos DATE se tratan como valores numericos
var fechahoy,fecharenta:tdate; Boton: Fechahoy:=strtodate(txtFechahoy.text); Fecharenta:=strtodate(txtFecharenta.text); Fechatotal:=FechaHoy-Fecharenta; if (Fechatotal<7)then //Le puse 7 digamos como para una modica multa begin showmessage('Ganaste una multa'); end else begin showmessage('Entrega a tiempo'); end; Bueno, no he probado este codigo, pero si mi procesador Core 2 Duo no me falla en mi cabeza debe funcionar Avisas si queda el codigo, si no para buscar una mejor solucion. Si tienen mas sugerencias, bienvenidas para seguir aprendiendo a manejar Delphi. Karla Última edición por karlaoax fecha: 08-06-2007 a las 17:50:14. |
#3
|
||||
|
||||
Si usas componenetes con la fecha, como por ejemplo un monthcalendar,
puedes restarlas desde delphi primero convirtiendolas a string y luego a float manejando el tipo de variable como extended para poder soportar las fechas... tal vez asi con una que otra corrreccion: procedure TForm1.BitBtn1Click(Sender: TObject); var f1, f2, resultado : Extended; fecha1, fecha2 : String; begin fecha1:= DateToStr(MonthCalendar1.Date); fecha2:= DateToStr(MonthCalendar2.Date); f1:= StrToFloat(fecha1); f2:= StrToFloat(fecha2); resultado:= Round(f1-f2); // La fecha uno obviamente debe ser mayor, la funcion round permite solo tener la fecha sin los decimales de la hora para evitar errores al comparar Edit1.Text:= FloatToStr(resultado); end; Igualmente si la necesitas como fecha solo debes convertirla... Si tienes otra idea sera mejor... |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Resta de horas | didier | Varios | 24 | 18-11-2010 23:11:54 |
Resta de fechas Y horas | Iskariote0087 | Varios | 3 | 05-12-2006 22:31:05 |
REsta Fechas | Juanito-Kun | Firebird e Interbase | 2 | 11-10-2005 20:52:23 |
Resta equivocada... | jhonny | Varios | 6 | 26-09-2005 18:43:20 |
Resta de Tablas con SQL | agova | SQL | 8 | 24-11-2003 21:20:25 |
|