Sql 在Oracle中减法后将时间戳转换为分钟

Sql 在Oracle中减法后将时间戳转换为分钟,sql,oracle,Sql,Oracle,我试图从减法后的时间戳中获取分钟值 首先我做了一个减法: 当前时间-目标时间(INSP_FIN_DT) 输出: +00:09:44.000000 我需要的是: 09 我已经试过了 选择SUBSTR(休息时间,7,2) 但返回值始终为00,即使我将其转换为Char,如下所示: 选择SUBSTR(到字符(休息时间),7,2) 如何通过查询解决此问题?此处的信息 选择 圆的( (SYSDATE-cast(作为日期)) * 24 * 60 )不同时间 从…起 对于我当前的实现,我的时间不会超过一个小时,

我试图从减法后的时间戳中获取分钟值

首先我做了一个减法:

当前时间-目标时间(INSP_FIN_DT)

输出:

+00:09:44.000000

我需要的是:

09

我已经试过了

选择SUBSTR(休息时间,7,2)

但返回值始终为00,即使我将其转换为Char,如下所示:

选择SUBSTR(到字符(休息时间),7,2)

如何通过查询解决此问题?

此处的信息

选择
圆的(
(SYSDATE-cast(作为日期))
* 24 * 60
)不同时间
从…起

对于我当前的实现,我的时间不会超过一个小时,在这种情况下,我使用了下面的解决方案:

SYSTIMESTAMP - TO_TIMESTAMP(INSP_FIN_DT,'YYYY-MM-DD HH24:MI:SS') AS REST_TIME
选择

EXTRACT(MINUTE FROM REST_TIME) AS REST_MINUTES
如果超过60分钟,我应该使用:

(EXTRACT(HOUR FROM REST_TIME) * 60)  
+ EXTRACT(MINUTE FROM REST_TIME) AS REST_MINUTES

你看到这里的解决方案了吗?您可以
提取(小时从…)
。但是为什么要将
sysdate
转换为字符串,然后再转换为时间戳,而不是使用
systimestamp
?你真的在
INSP\u FIN\u DT
列中将日期存储为字符串吗?如果是,为什么不将其存储为正确的日期?谢谢你的建议@ScinanaThank you for the tips@AlexPoole,我已经用你建议的解决方案进行了编辑。如果差异为1小时9分钟,您希望输出是69分钟还是9分钟?不要使用
cast(当前时间戳为日期)
只需使用
SYSDATE
更新答案,谢谢。
EXTRACT(MINUTE FROM REST_TIME) AS REST_MINUTES
(EXTRACT(HOUR FROM REST_TIME) * 60)  
+ EXTRACT(MINUTE FROM REST_TIME) AS REST_MINUTES