如何把 两个时间相减后 得到 XX天XX小时的格式dt1: 2011-02-28 14:43:33dt2: 2011-03-2 4:43:33用 dt2 - dt1 后 ,结果希望是 XX天XX小时在线等
解决方案 »
- 请问oracle新建表空间的完整语法是什么?怎么样往已经建好的表空间里增加一个数据文件
- 扫描到的数据更换主键同时更改另外三个字段再插入表如何才能高效?
- 如何用一条SQL语句实现,克隆一张表。
- 请问如何在PL/SQL中的COMMAND WINDOW输出字符串
- 求一个简单的SQL语句
- 请问oracle中的同义词是何意思?
- 上网的同志们看看我的SQL语句,为什么出不来。
- select to_char(to_date(1234567,'j'),'Jsp') from dual;(整数转英文)
- 我安装完oracle9i后,不能进入sql plus????
- SEQUENCE是什么东东
- 请教:WIN32BIT下ORACLE9I使用大内存问题 -在线等
- EYGLE之书---- 二:Oracle数据库 获得操作系统文件列表
return varchar2 IS
flag VARCHAR2(200);
status_failure VARCHAR2(200);
xs_cha number;
days_cha number;
BEGIN select substr(start_Time, 9, 2) - substr(end_time, 9, 2)
into xs_cha
from dual;
if xs_cha >= 0
then
select to_Date(substr(start_Time, 1, 8), 'yyyy-mm-dd hh24:mi:ss') -
to_Date(substr(end_time, 1, 8), 'yyyy-mm-dd hh24:mi:ss')
into days_cha
from dual;
return days_cha || '天' || xs_cha || '小时';
elsif
xs_cha<0
then
select to_Date(substr(start_Time, 1, 8), 'yyyy-mm-dd hh24:mi:ss') -
to_Date(substr(end_time, 1, 8), 'yyyy-mm-dd hh24:mi:ss') -1
into days_cha
from dual;
select substr(start_Time, 9, 2)+24 - substr(end_time, 9, 2)
into xs_cha
from dual;
return days_cha || '天' || xs_cha || '小时';
end if ;
EXCEPTION
WHEN OTHERS THEN
status_failure := TO_CHAR(SQLCODE) || ': ' || SUBSTR(SQLERRM, 1, 980);
proc_write_log(status_failure, 'systemerr.txt');
RETURN '1';
END;
(DAY FROM NUMTODSINTERVAL ( TO_DATE ('2011-03-2 4:43:33',
'yyyy-mm-dd hh24:mi:ss'
)
- TO_DATE ('2011-02-28 14:43:33',
'yyyy-mm-dd hh24:mi:ss'
),
'day'
)
)
|| '天'
|| EXTRACT
(HOUR FROM NUMTODSINTERVAL ( TO_DATE ('2011-03-2 4:43:33',
'yyyy-mm-dd hh24:mi:ss'
)
- TO_DATE ('2011-02-28 14:43:33',
'yyyy-mm-dd hh24:mi:ss'
),
'day'
)
)
|| '小时' INTERVAL
FROM DUAL;
2 from(
3 select to_date('2011-03-2 4:43:33','yyyy-mm-dd hh24:mi:ss') - to_date('2011-02-28 14:43:33','yyyy-mm-dd hh24:mi:ss') dt
4 from dual
5 );
TRUNC(DT)||'天'||TRUNC((DT-TRU
------------------------------
1天13小时
SQL>
SQL> select trunc(dt) || '天' ||trunc((dt - trunc(dt)) * 24) || '小时'||
2 trunc((dt * 24 - trunc(dt * 24)) * 60) || '分' ||
3 trunc((dt * 1440 - trunc(dt * 1440)) *60) || '秒'
4 from(
5 select to_date('2011-03-2 4:43:33','yyyy-mm-dd hh24:mi:ss') - to_date('2011-02-28 14:43:33','yyyy-mm-dd hh24:mi:ss') dt
6 from dual
7 );
TRUNC(DT)||'天'||TRUNC((DT-TRU
------------------------------
1天13小时59分59秒
第一个sql对第一个进行了扩展,显示:天数、小时数、分数和秒数
extract(hours from dt) "小时"
from (
select to_date('2011-03-2 4:43:33','yyyy-mm-dd hh24:mi:ss') - to_date('2011-02-28 14:43:33','yyyy-mm-dd hh24:mi:ss') dt
from dual
);