我设计了一个数据库,其中一个表是仪器设备device(有仪器名,编号,型号等数据),另外一个表是这些仪器设备的详细使用记录(包括仪器每次使用的开始使用时间和结束使用的时间和一个指向仪器设备的键),注意的是:一个仪器要对应很多条使用记录。现在我想的是:通过在数据库中查询出每个仪器的总使用时间?(每个仪器只有一个结果)请问这个hql或者sql语句如何写。谢谢帮忙。

解决方案 »

  1.   

    如果使用oracle可以看看,oracle的日期函数能不能处理
      

  2.   

    我说一个思想:
    你的使用表中一定有id(主键)和仪器id吧,把使用表中的id和时间差(结束时间-开始时间)查出来作为一张副表和使用表并在一起(使用表.id=副表.id),按仪器id分组查出sum(结束时间-开始时间)。
    不知道写清楚了没,也不知道行不行,楼主你试试吧~~~~~~~
      

  3.   

    还是跟你写出来吧~~
    使用表为A,开始时间为starttime,结束时间为endtime,仪器id为equid.
    select A.equid,B.sum(A.endtime-A.starttime) from A ,(select A.id,A.endtime-A.starttime from A ) B where A.id=B.id group by A.equid 
    试试吧~~应该可以~~我的时间是最小单位是天,小时或分钟应该都可以~~
      

  4.   

    我用的是oracle~~最小单位是天~~可以相减~~~
      

  5.   

    我没有oracle了, 用mysql就不能。