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;

转载于:https://www.cnblogs.com/joymaker/archive/2007/04/27/730160.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值