Informix中把时间差转化成秒以及秒转化成时间(s)转化成时间格式
--1. sec2datetime -----------
create procedure sec2datetime(sec integer)
returning varchar(44);
define re_date varchar(44);
define days integer;
define hours integer;
define minutes integer;
define seconds integer;
define temp integer;
define cdays varchar(10);
define chours varchar(10);
define cminutes varchar(10);
define cseconds varchar(10);
let temp = trunc(sec/(60*60*24),0);
let days =temp;
let temp =trunc((sec -60*60*24*days)/(60*60),0);
let hours =temp;
let temp =trunc((sec -60*60*24*days -60*60*hours)/60,0);
let minutes = temp;
let seconds =mod(sec -60*60*24*days -60*60*hours,60);
let cdays =days;
let chours = hours;
let cminutes = minutes;
let cseconds =seconds;
if length(cdays)=1 then
let cdays ='0'||cdays;
end if ;
if length(chours)=1 then
let chours ='0'||chours;
end if ;
if length(cminutes)=1 then
let cminutes ='0'||cminutes;
end if ;
if length(cseconds)=1 then
let cseconds ='0'||cseconds;
end if ;
let re_date =cdays||' '||chours||':'||cminutes||':'||cseconds;
return re_date;
end procedure ;
--2.datetime2sec -----------
create procedure datetime2sec(dt datetime year to second,dt1 datetime year to second)
returning numeric(8,2);
define sec_o numeric(8,2);
define int_day interval day(9) to second;
define days integer;
define hours integer;
define minutes integer;
define seconds integer;
define temp varchar(100);
define temp_dt datetime year to second;
let int_day = dt1 - dt;
let temp_dt=datetime(1900-01-01 00:00:00) year to second + int_day;
let temp = extend(temp_dt,day to day);
let days = temp -1;
let temp = extend(temp_dt,hour to hour);
let hours = temp + 0;
let temp = extend(temp_dt,minute to minute);
let minutes = temp + 0;
let temp = extend(temp_dt,second to second);
let seconds = temp +0;
let sec_o = (days * 86400 + hours * 3600 + minutes * 60 + seconds);
return sec_o;
end procedure;