一table,开始和结束时间
start_time || end_time
8:30 || 12:00
12:30 || 17:00
17:30 || 22:3012:00--12:30,17:00--17:30 这是休息时间;另外一个表记录时间
curtime
8:45
8:55
11:09
14:00
16:00
18:00
18:50
19:00想根据第一个表求出表二的实际工作时间,
比如, 到了 14:00,实际工作时间为14:00 - 8:30 - 30'(休息时间)=3H;
19:00,实际工作时间为19:00-8:30-30'-30’=10.5H;
start_time || end_time
8:30 || 12:00
12:30 || 17:00
17:30 || 22:3012:00--12:30,17:00--17:30 这是休息时间;另外一个表记录时间
curtime
8:45
8:55
11:09
14:00
16:00
18:00
18:50
19:00想根据第一个表求出表二的实际工作时间,
比如, 到了 14:00,实际工作时间为14:00 - 8:30 - 30'(休息时间)=3H;
19:00,实际工作时间为19:00-8:30-30'-30’=10.5H;
解决方案 »
- ORA-12154: TNS: 无法解析指定的连接标识符 问题求教
- 怎样给Oracle数据库中已经存在的两张表的公共字段创建Cluster聚簇?
- 追加分数,存储过程!
- 在线,紧急求助,序列问题!!!!
- 触发器中关于:old :new 得动态SQL问题! 一直没有解决 拜托大家帮忙看看哪里出了问题
- oracle9i有没有像sql server企业管理器中的“返回所有行”的功能,即在界面上就可以往表中的字段写入数据不是通过语句INSERT的形式
- 请问Oracle 自动增长列自动做
- 紧急问题求救
- oracle managerment server!选项
- 请教高手:是否在创建视图中select语句中不能有order by 子语句?
- 帮忙给写个修改oracle 里面修改一个字段的sql吧
- 100分跪救删除表空间的问题
nvl(sum(a1.end_time-a1.start_time),0)+nvl(max(b.curtime-a2.start_time),0) total
from a a1,a a2,b
where b.curtime>a1.end_time(+)
and b.curtime>a2.start_time(+) and
b.curtime<=a2.end_time(+)
group by b.curtime
时间如果不是date型的自己要转一下
(CASE WHEN TO_DATE(curtime,'hh24:mi') > TO_DATE((SELECT TO_CHAR(MAX(TO_DATE(end_time,'hh24:mi')),'hh24:mi') FROM tb1),'hh24:mi') THEN 2 WHEN TO_DATE(curtime,'hh24:mi') < TO_DATE((SELECT TO_CHAR(MIN(TO_DATE(end_time,'hh24:mi')),'hh24:mi') FROM tb1),'hh24:mi') THEN 0 ELSE 1 END)*0.5
FROM tb2
curtime XXX
8:45 8:45
8:55 8:55
11:09 11:09
14:00 13:30
16:00 15:30
18:00 17:00
18:50 17:50
19:00 18:00