繁体   English   中英

如何从字段中减去带有时间戳的Sys并获得小时和分钟

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM