就是将2006-01-13 2:20:10 中的‘-’和‘ ’‘:’都去掉然后存入
number型的列
就变成上述的
数据了。 他应该是时间的整型描述吧,具体怎么我也是不很清楚。
number型的列
就变成上述的
数据了。 他应该是时间的整型描述吧,具体怎么我也是不很清楚。
解决方案 »
- oracle10g百万数据性能优化
- 请教sql问题,刚才那位仁兄的语句看似对了,但结果还是不行啊
- 在oracle9i中的无效的存储过程怎样才能把它给删除了?
- 关于oracle备份的问题
- Oracle BLOB字段(我存的是图片)怎么更新不了啊?
- 请问大家,一个删表的问题,我们常用drop table table1来删表,这样删好象把表放到垃圾桶了,好象是没彻底删掉,如果drop这样删后,如何
- 有关快捷方式问题,从一个地方发送到桌面快捷方式,却不能用,原地方能用的.
- 这样的需求oracle能实现嘛?
- SQL的问题?在线等待!急急急急急!
- 游标循环添加问题!!!
- 初学+菜鸟提问:用imp命令导入数据库后,在哪里找到导入的数据??(急!!)
- 求助查看oracle中某个数据据下共有多少张表,表里是什么字段
FROM DUAL没做到格式化,只求出其不意多少天。我想格式化还需要进行字符转换和解析。
bgTm endTm
--------------------------------
20051226142338 20051226145728
20051226205431
20051227092406 如果endTm 为空就取当前系统时间 如何实现endTm于bgTm的
差值
计算。
date1 date;
date2 date;
temp varchar2(100);
ndays integer;
nhours integer;
nminutes integer;
nseconds integer;
type curtemp is ref cursor;
dateCursor curtemp;
begin
open dateCursor for select to_date(bgtm, 'yyyymmddhh24miss'),to_date(nvl2(endtm, endtm, to_char(sysdate, 'yyyymmddhh24miss')), 'yyyymmddhh24miss') From test;
loop
fetch dateCursor into date1,date2;
exit when dateCursor%notfound;
ndays := floor(date2-date1);
nhours := floor((date2-date1-ndays)*24);
nminutes := floor((date2-date1-ndays-nhours/24) * 24 * 60);
nseconds := floor((date2-date1-ndays-nhours/24-nminutes/24/60) * 24 * 60 * 60);
temp := to_char(ndays) || 'd' || to_char(nhours) || 'h' || to_char(nminutes) || 'm' || to_char(nseconds) || 's';
dbms_output.put_line(temp);
end loop;
close dateCursor;
end;
SELECT NVL(TO_DATE(endTm,'YYYYMMDDHH24MISS'),SYSDATE) - TO_DATE(bgTm,'YYYYMMDDHH24MISS') AS theInterval FROM T;这个差值是以天为单位的,乘以3600*24 得到秒。如下转换之:
SELECT TRUNC(s/24/60/60)||'天'||TRUNC((MOD(s,24*60*60))/60/60)||'小时'||TRIM(TO_CHAR(TRUNC((MOD(s,60*60))/60),'00')) ||'分'||TRIM(TO_CHAR(MOD(s,60),'00')) ||'秒' AS tt
FROM (
SELECT (NVL(TO_DATE(endTm,'YYYYMMDDHH24MISS'),SYSDATE) - TO_DATE(bgTm,'YYYYMMDDHH24MISS')) * 3600 * 24 AS s FROM T
);
---------------------------------------
+000000736 09:21:10可以看出2日期相差736天9小时21分10秒,只不过没有精确到毫秒
---------------------------------------
+000000736 09:21:09.711000000
SQL> select numtodsinterval(2134643,'second') from dual;NUMTODSINTERVAL(2134643,'SECON
---------------------------------------
+000000024 16:57:23.000000000