![]() |
![]() |
| Paypal | 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
|
|||
|
|||
|
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
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|