[英]How to subtract Sys with Timestamp from field and get hours and minutes
这是我目前的查询
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
并以小时和分钟为单位获取结果。
我该如何实现?
只需从另一个中减去一个
select sysdate - systimestamp from dual;
确保它们仍然是DATE和TIMESTAMP,请勿先将它们转换为字符。 这将返回一个INTERVAL数据类型。
显然,这给了您一个整数,这意味着您的时间戳已隐式转换为日期(或实际上已经是日期而不是时间戳)。
如果是这种情况,则您有两个日期之间的天数; 乘以一天中的分钟数,以分钟为单位:
select ( sysdate - systimestamp ) * 60 * 24 from dual;
使用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'
将在几分钟内显示结果。 从那里跳舞。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.