oracle时间与时间戳互转

时间戳转换成时间:

create or replace function sec_to_date(v_date number)
RETURN date  IS
v_srcdate number(15);
	v_tmp number(15);
 v_year varchar2(10);
 v_hour varchar2(10);
 v_min  varchar2(10);
 v_sec varchar2(10);
 v_out_date date;
begin
  v_srcdate:=v_date+8*3600;
	v_year:=to_char((v_srcdate-mod(v_srcdate,24*3600))/24/3600+to_date('19700101000000','yyyymmddhh24miss'),'yyyymmdd');
	v_tmp:=mod(v_srcdate,24*3600);
	v_hour:=to_char((v_tmp-mod(v_tmp,3600))/3600);
	if length(v_hour) =1 then
	  v_hour:='0'||v_hour;
	end if;
	v_tmp:=mod(v_tmp,3600);
	v_min:=to_char((v_tmp-mod(v_tmp,60))/60);
	if length(v_min) = 1 then
	 v_min:='0'||v_min;
	end if;
	v_tmp:=mod(v_tmp,60);
	if v_tmp <10 then
		v_sec:='0'||v_tmp;
		else
		v_sec:=to_char(v_tmp);
	end if;
	v_out_date:=to_date(v_year||v_hour||v_min||v_sec,'yyyymmddhh24miss');
	return (v_out_date);
end;

时间转换成时间戳:

create or replace function date_to_sec(src date)
RETURN number  IS
 v_cdate varchar2(24);
 v_daysec number(15);
 v_hoursec number(15);
 v_minsec number(15);
 v_secsec number(15);
 v_allsec number(15);
 begin
 v_cdate :=to_char(src,'yyyymmddhh24miss');
 v_daysec:=(trunc(src)-date'1970-01-01')*24*3600;
 v_hoursec:=to_number(substr(v_cdate,9,2))*3600;
 v_minsec:=to_number(substr(v_cdate,11,2))*60;
 v_secsec:=to_number(substr(v_cdate,13,2));
 v_allsec:=v_daysec+v_hoursec+v_minsec+v_secsec-8*3600;
  return (v_allsec);
end ;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值