SQL
CREATE OR REPLACE FUNCTION "DATAHORA" (data IN DATE,hora IN FLOAT, f IN INTEGER DEFAULT 0)
RETURN TIMESTAMP
AS
resultat TIMESTAMP;
cadena VARCHAR(20);
h INTEGER;
m INTEGER;
BEGIN
/* Donada una data i una hora en format decimal, tornar un TIMESTAMP
   f=0 La hora es en format sexagimal
   f=1 La hora es en format centesimal
 */
  cadena:=REPLACE(TO_CHAR(hora,'FM00D00'),'.','');
  h:=TO_NUMBER(SUBSTR(cadena,1,2),'00');
  m:=TO_NUMBER(SUBSTR(cadena,3,2),'00');
  if f=1 then
    m:=m*60/100;
  else
    if m>=60 THEN
      m:=59;
    end if;
  end if;
  cadena:=TO_CHAR(data,'YYYYMMDD')||TO_CHAR(h,'00')||TO_CHAR(m,'00');
  RETURN TO_TIMESTAMP(cadena, 'YYYYMMDDHH24MI');
END;