Groups > Interbase > Interbase Bugs > Inavlid date return




Inavlid date return

Inavlid date return
22 Oct 2006 22:22:54 -0700
Interbase 7.5.1 windows 2000 Server

I make key codes with system date from Interbase server 
< select cast('TODAY' as Date) from rdb$database >
The return value is different from current date
this is happen very rare but 2 customers have report me the same problem.
It is Interbase bug? or Windows bug ?


i Report the 3 stored procedures
------------------------------------------------------

CREATE PROCEDURE GETSYSDATE 
RETURNS (
    FORDERID INTEGER)
AS
DECLARE VARIABLE FY VARCHAR(4);
DECLARE VARIABLE DT DATE;

DECLARE VARIABLE FDATE DATE;
DECLARE VARIABLE ORDERID VARCHAR(10); 
begin
 select cast('TODAY' as Date) from rdb$database
 into :DT;


  select ADATE from LASTDATE into :FDATE;
  if (DT <> FDATE or (FDATE is null))
  then

  Update LASTDATE set ADATE= :DT,LASTORDER =1;


  else
    Update LASTDATE set LASTORDER =LASTORDER+1;

 select DAYS from DAYSBETWEEN into :FY;
 select Cast(LASTORDER as VarChar(10))||:FY
  from
  LASTDATE   into ORDERID;
FORDERID=cast(ORDERID as Integer);


  suspend;
end
----------------------------------------------------------

CREATE PROCEDURE DAYSBETWEEN 
RETURNS (
    DAYS CHAR (4) CHARACTER SET NONE)
AS


DECLARE VARIABLE ACurrYear   varchar(4);
declare variable FDAY varchar(3);
DECLARE VARIABLE Aday  Integer;
DECLARE VARIABLE AYEAR  Integer;
DECLARE VARIABLE ADATE  DATE;
BEGIN
AYEAR=Extract(Year from Current_Date);
ADATE=01||'/'||01||'/'||(AYEAR);

ACurrYear=cast(AYEAR as Varchar(4));
ACurrYear=LOngsubstr(ACurrYear,strlen(ACurrYear),1);
select Result +1 from getdif(:adate,Current_Date) into :Aday;
Fday=Cast(aday as Varchar(3));
if (strlen(Fday)=1) then Fday='00'||Fday;
else
if (strlen(Fday)=2) then Fday='0'||Fday;

Days=Fday||ACurrYear;
  SUSPEND;
END
--------------------------------------------------------------
CREATE PROCEDURE GETDIF (
    D1 DATE,
    D2 DATE)
RETURNS (
    RESULT INTEGER)
AS
BEGIN
 Result = (D2-D1);
  SUSPEND;
Post Reply
about | contact