【问题标题】:How to get two dates difference in hours?如何获得两个日期的小时差?
【发布时间】:2016-02-11 16:02:50
【问题描述】:

我正在尝试将员工的总时数相加,我可以获得每项工作的工作时数,但无法将它们加在一起。

我正在使用以下代码来达到目的。

SELECT 
      TO_DATE(TRIP.RETURN_DATE, 'DD-MM-YYYY')
      - TO_DATE(TRIP.DEPARTURE_DATE, 'DD-MM-YYYY') AS duration,
      TRIP.EMPLOYEE_NO AS employee
 FROM EMPLOYEE, TRIP;

它以以下格式返回结果:

 DURATION | EMPLOYEE 
---------------------
    5     | 0037759    
    8     | 0037759    
    2     | 0037759    
    3     | 0037759    
    3     | 0037759  

如何为每个员工添加工期?

【问题讨论】:

  • 查看group by 的工作原理
  • trip.return_date和trip.departure_date的数据类型是什么?
  • TO_DATE(TRIP.RETURN_DATE, 'DD-MM-YYYY') 为什么要在 DATE 应用 TO_DATERETURN_DATE数据类型是什么?

标签: sql oracle datediff


【解决方案1】:

我不知道你的表结构,所以我在这里做一些假设。您还缺少将员工和旅行联系在一起的 JOIN。

SELECT SUM(TO_DATE(TRIP.RETURN_DATE, 'DD-MM-YYYY') - TO_DATE(TRIP.DEPARTURE_DATE, 'DD-MM-YYYY')) duration, 
TRIP.EMPLOYEE_NO AS employee
FROM employee JOIN trip on trip.employee_no = employee.employee_no

GROUP BY  employee.employee_no

【讨论】:

  • 记得在 24 岁之前复数。
  • 谢谢!这真的很有帮助!
猜你喜欢
  • 2020-02-08
  • 1970-01-01
  • 1970-01-01
  • 2013-10-14
  • 1970-01-01
  • 1970-01-01
  • 2014-07-13
  • 1970-01-01
相关资源
最近更新 更多