在日期字段中减去两次

时间:2019-11-04 14:42:36

标签: sql oracle

我有两个专栏,旨在为已故员工留出时间。以下是其内容的示例:

select TO_CHAR(VAHRUAE_ActualInTime, 'HH24:MI') ActualTime, TO_CHAR(VAHRUAE_InTime, 'HH24:MI') InTime from VAHRUAE_DailyAttendance

ActualTime          InTime
   01:25             00:57
   05:46             00:57
   06:00             00:57

我想从Intime中减去ActualTime。我在互联网上进行了很多搜索,并尝试了很多想法,但没有找到解决方案。我考虑过将小时数从分钟数中减去并减去,然后加入它们。问题是显示负值(例如46-57将导致-11min)。什么是正确的解决方案。
更新:
结果应该以小时:分钟形式,例如:
05:03(从06:00-00:57开始)

(如果有帮助)

select VAHRUAE_ActualInTime ActualTime, VAHRUAE_InTime InTime from VAHRUAE_DailyAttendance

  ActualTime            InTime
--------------         --------
   01-JAN-70             00:57
   01-JAN-70             00:57
   01-JAN-70             00:57
desc VAHRUAE_DailyAttendance

Name                          Type
----------                   ------
VAHRUAE_ActualInTime          Date
VAHRUAE_InTime                Date

1 个答案:

答案 0 :(得分:0)

您可以尝试:

SELECT TO_TIMESTAMP(ActualTime) - TO_TIMESTAMP(InTime) FROM VAHRUAE_DailyAttendance;

或其他方式:

SELECT (ActualTime - InTime)*24*60 AS difference_in_minutes from VAHRUAE_DailyAttendance;

如果ActualTime位于过去,则此值为负。如果您想要一个整数值,则将结果四舍五入

select round((ActualTime - InTime)*24*60,0)
  from test;
相关问题