时间计算的问题

Crisitaaano 2014-12-09 03:33:37
我现在 Oracle数据库 中 有两张表 设备运转T1 , 设备异常表 T2 ,表结构相同。
T1 : id , createTime , endTime
T2 : id , createTime , endTime
createTime , endTime 的跨度最大是24小时。
例如
createTime endTime
2014-11-8 00:00 2014-11-9 00:00

2014-11-10 00:00 2014-11-11 00:00

2014-11-11 07:00 2014-11-12 00:00

2014-11-12 07:00 2014-11-12 22:00

想在想计算出设备的实际运行时间,就是 设备运转时间 减去 该时间内的设备异常时间
是用 数据库做好,还是用.net类来写方便?
用Oracle语句来计算如何计算?
用ASP.NET来写如何写?
...全文
220 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Crisitaaano 2014-12-10
  • 打赏
  • 举报
回复
谢谢大神
bw555 2014-12-10
  • 打赏
  • 举报
回复
引用 10 楼 lanecy 的回复:
不是每天都到次日的零点,每天的结束时间是最迟最迟是到次日的零点
我问的就是是不是最晚到次日的0点啊,按你的描述9楼代码可用
Crisitaaano 2014-12-10
  • 打赏
  • 举报
回复
不是每天都到次日的零点,每天的结束时间是最迟最迟是到次日的零点
bw555 2014-12-10
  • 打赏
  • 举报
回复
你的endtime是不是最晚到次日的0点?如果是的话可以这样写
select id, trunc(createtime),sum(run_time)
from (
    select id, endtime-createtime run_time from t1
    union all
    select id, createtime-endtime run_time from t2 
)group by id,trunc(createtime)
Crisitaaano 2014-12-10
  • 打赏
  • 举报
回复
你看,我数据库中的每条记录,都可以认为是单天的运行时间
Crisitaaano 2014-12-10
  • 打赏
  • 举报
回复
你这边用的sum,是按照设备汇总的运行时间啊 我想计算,每个设备,每天 实际运行了多久
bw555 2014-12-09
  • 打赏
  • 举报
回复
作业题还是什么,这类需求最好在数据库中,执行效率比用类实现要快很多 再提供一种写法
select id, sum(run_time)
from (
    select id, endtime-createtime run_time from t1
    union all
    select id, createtime-endtime run_time from t2 
)group by id
Crisitaaano 2014-12-09
  • 打赏
  • 举报
回复
若是用程序写,类,大概怎么写,给个参考
Crisitaaano 2014-12-09
  • 打赏
  • 举报
回复
大致的数据是这样 TEST001 2014-12-01 08:00:00 2014-12-01 18:48:00 TEST002 2014-12-03 00:00:00 2014-12-04 00:00:00 TEST002 2014-12-02 07:00:00 2014-12-03 00:00:00 TEST002 2014-12-05 00:00:00 2014-12-05 07:30:00 TEST002 2014-12-04 00:00:00 2014-12-05 00:00:00 TEST003 2014-12-16 00:00:00 2014-12-17 00:00:00 TEST003 2014-12-17 00:00:00 2014-12-17 09:55:00 TEST003 2014-12-14 00:00:00 2014-12-15 00:00:00 TEST003 2014-12-13 00:00:00 2014-12-14 00:00:00 TEST003 2014-12-12 00:00:00 2014-12-13 00:00:00 TEST003 2014-12-11 00:00:00 2014-12-12 00:00:00 TEST003 2014-12-10 00:00:00 2014-12-11 00:00:00 TEST003 2014-12-09 00:00:00 2014-12-10 00:00:00 TEST003 2014-12-08 09:00:00 2014-12-09 00:00:00 TEST003 2014-12-15 00:00:00 2014-12-16 00:00:00 TEST004 2014-11-23 00:00:00 2014-11-24 00:00:00 TEST004 2014-11-22 00:00:00 2014-11-23 00:00:00 TEST004 2014-11-21 00:00:00 2014-11-22 00:00:00 TEST004 2014-11-20 09:00:00 2014-11-21 00:00:00
CT_LXL 2014-12-09
  • 打赏
  • 举报
回复
引用 2 楼 lanecy 的回复:
我的意思是计算出 每天每个设备 实际运行了多少小时, 你的语句是根据设备id来分组,计算的是,每个设备总的时间
如果需要统计每天的话,由于牵涉时间有跨天的问题(createtime 和endtime)不在同一天,一个SQL写起来比较麻烦,建议用程序实现
Crisitaaano 2014-12-09
  • 打赏
  • 举报
回复
我的意思是计算出 每天每个设备 实际运行了多少小时, 你的语句是根据设备id来分组,计算的是,每个设备总的时间
CT_LXL 2014-12-09
  • 打赏
  • 举报
回复
引用 楼主 lanecy 的回复:

select tt1.id, run_time - nvl(stop_time, 0)
  from (select id, sum(endtime - createtime) run_time from t1 group by id) tt1,
       (select id, sum(endtime - createtime) stop_time from t2 group by id) tt2
 where tt1.id = tt2.id(+)
"饿了么"是中国知名的在线外卖订餐平台,已覆盖中国数百个城市,数千万用户,聚集了数十万家餐饮商户。"饿了么"为中国广泛地区的用户提供丰富多样、简单快捷的在线订餐服务;为不同类型的餐饮商户提供基于互联网技术的一体化运营解决方案。网上订餐不仅得到了用户们的亲睐,更是餐馆们创收的绝佳选择。餐饮企业普遍面临竞争压力加剧、人力成本、租金成本上涨等问题,而网上订餐平台正好解决这些餐饮企业的烦恼。   相关数据显示预计到2015年中国餐饮O2O市场规模将达到1200亿元左右,如此巨大的市场,自然引得各家订餐网站疯狂抢夺。抢夺方式最明显的就是圈地扩张。网站订餐是一个不可缺少的市场,其市场会越来越大,如何做一家网站订餐系统,其程序是比不可少。经过长时间的测试开发(eatcms)可以帮您打造本地商业门户,抢占手机市场等。 功能介绍 餐厅展示 展示餐厅的基本信息,图片信息,菜谱,以及地图显示商家位置等。 网上下单 用户通过系统选择商家并挑选菜品提交订单。 定制餐厅 可把附近的餐厅添加到首页。 会员中心 会员注册后有独立的会员中心,管理个人资料,订单信息,地址信息。 餐厅管理 商家有独立的管理平台,可以自主设置营业时间,更新菜单,更新资料,查收订单更新订单状态,真正实现完全自主管理。 订单管理 系统订单管理,即时查看网上订单,对订单进行相应的分发,实时更新状态. 会员管理 对网站会员进行管理,资料导出,更新资料,查看消费情况积分情况。 高级功能 财务统计 对系统营业额按照不同的条件进行查询统计,可以查看餐馆营业额,时间段内营业额,今日营业额等各项数据指标。 短信通知 有订单自动短信提醒到对应的餐厅。订单通过短信网关下发给商家,发送送餐信息给用户,信息流通更加顺畅 地图搜索 集成google地图进行商家**与搜索,用户只需**自己的位置就可以看到附近可以配送的商家。 运费计算 系统可以设置是否增加运费(高级定制功能:根据商家地址以及用户的配送地址动态计算最短路径并按照计费标准进行计算)。 界面整体定制 可根据客户的需求以及客户自身的品牌形象**进行全新的界面设计,整体风格的调整,以符合客户的品牌形象。

17,138

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧