您的位置:首页 > 数据库 > Oracle

oracle 数据库 时间差 年数、月数、天数、小时数、分钟数、秒数

2015-11-01 10:44 591 查看
declare

l_start date := to_date('2015-04-29 01:02:03', 'yyyy-mm-dd hh24:mi:ss');
l_end date := to_date('2015-05-15 11:22:33', 'yyyy-mm-dd hh24:mi:ss');

l_ym interval year to month;
l_ds interval day to second;
l_year number;
l_month number;
l_day number;
l_hour number;
l_minute number;
l_second number;
l_str varchar2(100);
begin
l_ym := numtoyminterval(trunc(months_between(l_end, l_start)), 'month');
l_ds := numtodsinterval(l_end -
add_months(l_start,
trunc(months_between(l_end, l_start))),
'day');

select extract(year from l_ym), extract(month from l_ym)
into l_year, l_month
from dual;

select extract(day from l_ds),
extract(hour from l_ds),
extract(minute from l_ds),
extract(second from l_ds)
into l_day, l_hour, l_minute, l_second
from dual;

l_str := lpad(to_char(l_year), 4, '0') || '年' ||
lpad(to_char(l_month), 2, '0') || '月' ||
lpad(to_char(l_day), 2, '0') || '天' || ' ' ||
lpad(to_char(l_hour), 2, '0') || ':' ||
lpad(to_char(l_minute), 2, '0') || ':' ||
lpad(to_char(l_second), 2, '0');

dbms_output.put_line(l_str);

end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: