FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Creo si va a estar dificil
Si lamentablemente estoy rediseñando un sistema con una base de datos ya definida y me encontre con esa bronca, pero bueno si veo que va a estar dificil solucionarlo asi que por el momento lo voy a hacer como les habia comentado anteriormente por medio de la interface de delphi y si mas delante consigo alguna forma mejor pues se los informo, muchas gracias.
|
#2
|
||||
|
||||
Resp
Si lo puedes implementar pero al parecer no quieren aprender a preguntar asi que limitare a responder algunas preguntas.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa. |
#3
|
||||
|
||||
Hola, espero te sirva esto:
Creas un procedimiento al que le envias las dos fechas numericas: Código:
CREATE PROCEDURE SP_RESTA_FECHAS ( AN_FECHA1 INTEGER, AN_FECHA2 INTEGER) RETURNS ( NUM_DIAS INTEGER) AS declare variable vs_fecha1 varchar(10); declare variable vs_fecha2 varchar(10); BEGIN vs_fecha1 = substring( cast(an_fecha1 as varchar(8)) from 5 for 2) || '/'|| substring( cast(an_fecha1 as varchar(8)) from 7 for 2) || '/'|| substring( cast(an_fecha1 as varchar(8)) from 1 for 4); vs_fecha2 = substring( cast(an_fecha2 as varchar(8)) from 5 for 2) || '/'|| substring( cast(an_fecha2 as varchar(8)) from 7 for 2) || '/'|| substring( cast(an_fecha2 as varchar(8)) from 1 for 4); Select cast(:vs_fecha2 As Date) - cast(:vs_fecha1 As Date) From rdb$database Into :NUM_DIAS; SUSPEND; END Código SQL [-]Select (select NUM_DIAS FROM SP_RESTA_FECHAS(fechaN1,FechaN2) ) From TablaOrigen Saludos, Jorge. |
#4
|
||||
|
||||
Agregue un argumento mas para meses y cambie el procedimiento:
Código:
CREATE PROCEDURE SP_RESTA_FECHAS ( AN_FECHA1 INTEGER, AN_FECHA2 INTEGER, AV_TIPO CHAR (1) CHARACTER SET WIN1251) RETURNS ( NUM_DIAS INTEGER) AS declare variable vs_fecha1 varchar(10); declare variable vs_fecha2 varchar(10); BEGIN if( av_tipo = 'M' ) then if (substring( cast(an_fecha1 as varchar(8)) from 1 for 4) = substring( cast(an_fecha2 as varchar(8)) from 1 for 4)) then num_dias = cast(substring( cast(an_fecha2 as varchar(8)) from 5 for 2) as integer) - cast(substring( cast(an_fecha1 as varchar(8)) from 5 for 2) as integer) + 1; else num_dias = cast(substring( cast(an_fecha2 as varchar(8)) from 5 for 2) as integer) + (( cast(substring( cast(an_fecha2 as varchar(8)) from 1 for 4) as integer) - cast(substring( cast(an_fecha1 as varchar(8)) from 1 for 4) as integer) ) * 12); else begin vs_fecha1 = substring( cast(an_fecha1 as varchar(8)) from 5 for 2) || '/'|| substring( cast(an_fecha1 as varchar(8)) from 7 for 2) || '/'|| substring( cast(an_fecha1 as varchar(8)) from 1 for 4); vs_fecha2 = substring( cast(an_fecha2 as varchar(8)) from 5 for 2) || '/'|| substring( cast(an_fecha2 as varchar(8)) from 7 for 2) || '/'|| substring( cast(an_fecha2 as varchar(8)) from 1 for 4); num_dias = cast(:vs_fecha2 As Date) - cast(:vs_fecha1 As Date); end SUSPEND; END Código SQL [-]select (select num_dias from RESTA(fecha1,fecha2,tipo) From TablaOrigen Donde Tipo es M=Meses y por default días. Espero en algo haberte ayudado, Jorge. |
#6
|
|||
|
|||
Gracias jwmoreira por el procedimiento...
Lo voy a implementar y les aviso resultados
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Calcular numero de dias entre dos fechas | vero | Varios | 22 | 31-05-2011 14:37:34 |
Obtener tiempo entre fechas | YaninaGenia | Oracle | 5 | 04-05-2006 20:46:20 |
función para obtener diferencias entre fechas - Firebird | clanmilano | SQL | 1 | 11-11-2005 13:29:52 |
Numero de dias entre fechas (TDateTime) | sierraja | Varios | 4 | 26-04-2005 18:29:02 |
numero de semanas entre 2 fechas | marrullas | SQL | 1 | 10-05-2004 19:21:18 |
|