0

我有一个日期时间字段:PAY​​COM_IN_TIME

我还有一个手动输入的字段(例如:'07:00:00'): SCHEDULED_CLOCK_IN SCHEDULED_CLOCK_IN 是在我的查询中使用它构建的:
SELECT '07:00:00' SCHEDULED_CLOCK_IN FROM DUAL

我希望以 MINUTES 为单位获得时差:PAYCOM_IN_TIME 减去 SCHEDULED_CLOCK_IN

在此处输入图像描述

非常感谢所有帮助!

4

3 回答 3

1

您可以使用:

SELECT paycom_in_time,
       scheduled_clock_in,
       ( TRUNC( paycom_in_time ) + scheduled_clock_in - paycom_in_time ) DAY TO SECOND
         AS difference_interval,
       ROUND(
         ( TRUNC( paycom_in_time ) + scheduled_clock_in - paycom_in_time )
         * 24 * 60
       ) AS difference_minutes
FROM   table_name
       CROSS JOIN (
         SELECT INTERVAL '07:00' HOUR TO MINUTE AS scheduled_clock_in FROM DUAL
       )

其中,对于样本数据:

CREATE TABLE table_name ( paycom_in_time ) AS
SELECT DATE '2020-10-17' + INTERVAL '07:49' HOUR TO MINUTE FROM DUAL UNION ALL
SELECT DATE '2020-10-13' + INTERVAL '06:51' HOUR TO MINUTE FROM DUAL UNION ALL
SELECT DATE '2020-10-22' + INTERVAL '06:56' HOUR TO MINUTE FROM DUAL UNION ALL
SELECT DATE '2020-10-23' + INTERVAL '06:47' HOUR TO MINUTE FROM DUAL UNION ALL
SELECT DATE '2020-10-26' + INTERVAL '06:52' HOUR TO MINUTE FROM DUAL UNION ALL
SELECT DATE '2020-10-30' + INTERVAL '06:59' HOUR TO MINUTE FROM DUAL;

输出:

PAYCOM_IN_TIME | SCHEDULED_CLOCK_IN | DIFFERENCE_INTERVAL | DIFFERENCE_MINUTES
:----------------- | :----------------- | :----------------- | -----------------:
2020-10-17 07:49:00 | +00 07:00:00 | -00 00:49:00.000000 | -49
2020-10-13 06:51:00 | +00 07:00:00 | +00 00:09:00.000000 | 9
2020-10-22 06:56:00 | +00 07:00:00 | +00 00:04:00.000000 | 4
2020-10-23 06:47:00 | +00 07:00:00 | +00 00:13:00.000000 | 13
2020-10-26 06:52:00 | +00 07:00:00 | +00 00:08:00.000000 | 8
2020-10-30 06:59:00 | +00 07:00:00 | +00 00:01:00.000000 | 1

db<>在这里摆弄

于 2020-11-02T23:00:48.250 回答
1

我想到了。我将 hh:mm:ss 文本条目转换为日期时间戳:to_date(to_char(PAYCOM_DATE, 'MM-DD-YYYY') || S.CLOCK_IN, 'MM-DD-YYYY HH24:MI:SS')

然后我计算了分钟:(SCHEDULED_CLOCK_IN - P.CLOCKIN)* 24 * 60 DIFF_MINS

于 2020-11-02T20:04:06.063 回答
-1

使用带有 SELECT TIME_TO_SEC(TIMEDIFF(paycom, shedulded))/60; 的查询

或者

选择 DATEDIFF(MINUTE, paycom, shedulded) AS [时间以分钟为单位]

于 2020-11-02T19:48:50.260 回答