这是我当前的查询
SELECT
TABLE1.OUT_NO,
To_char(sysdate, 'MM-DD-YYYY HH24:MI:SS') as "Current_Time",
To_char(TABLE2.time_stamp, 'MM-DD-YYYY HH24:MI:SS') as "Recorded_Time"
FROM TABLE1 TABLE1 LEFT OUTER JOIN TABLE2 TABLE2 ON TABLE1.OUT_NO = TABLE2.OUT_NO
WHERE TABLE1.OUT_NO > '12345'
我需要减去Current_time
- Recorded_Time
并在小时和分钟内获得结果
我怎么能实现这个目标呢?
答案 0 :(得分:1)
只需从另一个
中减去一个select sysdate - systimestamp from dual;
确保它们仍然是DATE和TIMESTAMP,不要先将它们转换为字符。这将返回INTERVAL数据类型。
显然这会给你一个整数,这意味着你的时间戳被隐式转换为日期(或者实际上已经是日期而不是时间戳)。
如果是这种情况,您可以获得两个日期之间的天数;乘以一天中的分钟数,以便在几分钟内完成:
select ( sysdate - systimestamp ) * 60 * 24 from dual;
答案 1 :(得分:0)
使用datediff()内置函数
SELECT
TABLE1.OUT_NO,
To_char(sysdate, 'MM-DD-YYYY HH24:MI:SS') as "Current_Time",
To_char(TABLE2.time_stamp, 'MM-DD-YYYY HH24:MI:SS') as "Recorded_Time",
datediff(mi,time_stamp,getdate()) as DiffInTime
FROM TABLE1 TABLE1 LEFT OUTER JOIN TABLE2 TABLE2 ON TABLE1.OUT_NO = TABLE2.OUT_NO
WHERE TABLE1.OUT_NO > '12345'
将在几分钟内显示结果。从那里跳舞。