做一个函数转换 create function is_date(p_date number) return date is v_date date; begin v_date:=to_date(to_char(p_date),'yyyymmddhh24miss'); --格式视数值而定 return v_date; end; / select sysdate-is_date(col_date)*24*60*60 时间戳 from table_name;
1 建立一个函数,函数的参数num为时间戳的值create or replace function getdate(num number) return date is y number(4); m number(2); d number(2); h number(2); s number(2); mi number(2); val number(10); totalday number(18,6);
dat date; begin val:=num; y:=floor(val/(365*12*24*60*60)); val:=mod(val,365*12*24*60*60);
create function is_date(p_date number)
return date
is
v_date date;
begin
v_date:=to_date(to_char(p_date),'yyyymmddhh24miss'); --格式视数值而定
return v_date;
end;
/
select sysdate-is_date(col_date)*24*60*60 时间戳 from table_name;
y number(4);
m number(2);
d number(2);
h number(2);
s number(2);
mi number(2);
val number(10);
totalday number(18,6);
dat date;
begin
val:=num;
y:=floor(val/(365*12*24*60*60));
val:=mod(val,365*12*24*60*60);
m:=floor(val/(12*24*60*60));
val:=mod(val,12*24*60*60);
d:=floor(val/(24*60*60));
val:=mod(val,24*60*60);
h:=floor(val/(60*60));
val:=mod(val,60*60);
mi:=floor(val/60);
val:=mod(val,60);
s:=val;
totalday:=y*365+m*12+d+h/24+mi/(24*60)+s/(24*60*60);
dat:=to_date('1970-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')+totalday;
dbms_output.put_line(dat);
return dat;
end;2 在sqlplus中 先输入 Set ServerOutput on,然后这么调用函数
declare
d date;
begin
d:=getdate(&d);
dbms_output.put_line(d);
end;
/3 sqlplus提示输入d的值,然后输入时间戳的值即可。
select to_date(to_char(字段),'yyyymmdd hh24:mi:ss') from table
(1)系统时间转化时间戳
tempstr:=to_char(sysdate,'yyyy-mm-dd HH24:mi:ss');--当前系统时间格式转化
--获取当前时间到时间戳0点的时间差 (单位:天,一般带小数的,用字符串来处理)
tempstr:=to_char(to_number(to_date(tempstr,'yyyy-mm-dd HH24:mi:ss')-to_date('1970-1-1 8:0:0','yyyy-mm-dd HH24:mi:ss')));
tempstr:=to_char(to_number(tempstr)*24*3600);--时间差转化成秒数(有待去掉小数位)
dbms_output.put_line('系统时间的时间戳:'||tempstr);---系统时间的时间戳
(2)时间戳直观化
TimeNumber:=1088728528;--时间戳初始值
tempstr:=to_char(TimeNumber/(24*3600));---转化为天数
dbms_output.put_line('当前时间:'||to_char(to_date('1970-01-01 08:0:0','yyyy-mm-dd HH24:mi:ss')+to_number(tempstr),'yyyy-mm-dd HH24:mi:ss'));
请各位指教指教!