declare @t table(col varchar(100))
insert into @t select 'ab/dd/u3u/kk.txt'
insert into @t select 'ab/dd/yy/ik4.txt'
insert into @t select 'ab/dd/rewew/uiy/uu/ktk.txt'
insert into @t select 'ab/csd/kk.txt'select
reverse(left(col,charindex('/',col)-1))
from
(select col=stuff(reverse(col),1,charindex('/',reverse(col)),'') from @t) a/*
col
---------
u3u
yy
uu
csd
*/
insert into @t select 'ab/dd/u3u/kk.txt'
insert into @t select 'ab/dd/yy/ik4.txt'
insert into @t select 'ab/dd/rewew/uiy/uu/ktk.txt'
insert into @t select 'ab/csd/kk.txt'select
reverse(left(col,charindex('/',col)-1))
from
(select col=stuff(reverse(col),1,charindex('/',reverse(col)),'') from @t) a/*
col
---------
u3u
yy
uu
csd
*/
解决方案 »
- 插入数据时为什么会造成锁?
- OCCI下如何使用setClob()
- 触发器怎么写
- 删除分区表后如何删除分区
- 谁能救救我啊,一个oracle课设,实在不会做了
- sql 数据库里把字符窜里的换行去掉 或者改成空 也可以 帮我问问怎么写sql
- 关于dmp导入数据的问题(急,在线等)
- 请问用ASP怎么取出ORACLE 中的序列值?
- 急问:oracle客户端通过odbc配置服务器的问题
- 创建资料档案库时,出现ORA-12500:TNS:监听程序无法启动专用服务器进程,百分赠!
- 报告错误can bind a LONG value only for insert into a LONG column
- 一个关于级联表操作的简单问题????大家快帮忙阿~~~
--------------------
ab/dd/u3u/kk.txt
ab/dd/yy/ik4.txt
ab/csd/kk.txtSELECT SUBSTR(A,INSTR(A,'/',-1,2)+1,INSTR(A,'/',-1)-INSTR(A,'/',-1,2) - 1) FROM T;
表t 列的为number类型 存放的是年月日时分秒信息如下:(endTm 有可能为空)
beginTm endTm
-------------------------------
1136790278828 1138760278828
1136320278828
1131190278828 我想得到每条纪录所花的时间(即endTm 和beginTm的差值)。如果endTm 为空就取当前时间。
此外能否将这种差值转化成x d x h x m x s(多少天多少小时多少分钟多少秒多少毫秒)的格式显示
或者类似这样的格式都可以。
BEGIN
RETURN 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')) ||'秒';
EXCEPTION
WHEN OTHERS THEN RETURN NULL;
END GET_STD_TIME;
/
楼上的能够求两列的时间差么?
还有第二列的时间有可能是空的.
如果是空的话我如何取当前系统时间然后在和第一列求时间差.最后用楼上的方法转换成相应的格式!
能给出更好的sql么?
谢谢!
FROM (
SELECT (NVL(TO_DATE(endTm,'YYYYMMDDHH24MISS'),SYSDATE) - TO_DATE(bgTm,'YYYYMMDDHH24MISS')) * 3600 * 24 AS s FROM T
);