You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算Temp_cperf表中两日期列的精确分钟时间差?

计算Oracle中日期/时间戳的分钟时间差

问题分析

你的示例数据中,Created_date(16-SEP-23 15:08:14)与Updated_date(16-SEP-23 15:08:35)的时间差为21秒,正确的分钟换算应为 21/60 = 0.35,你提到的0.21是错误的(0.21分钟等于12.6秒,与实际时间差不符)。

如果你的查询结果是0.35,那其实是正确的;但如果字段类型是TIMESTAMP而非DATE,直接使用(Updated_date - Created_date)*24*60可能会因类型运算问题导致结果异常(比如包含小数秒时的偏差)。

正确计算方法

情况1:字段为DATE类型

DATE类型相减直接得到天数,乘以24*60即可转换为分钟,你的原始查询本身是正确的:

SELECT ROUND((Updated_date - Created_date)*24*60, 2) AS Time_DIFF
FROM TEMP_CPERF 
WHERE C_ID = 12345;

情况2:字段为TIMESTAMP类型

TIMESTAMP相减得到INTERVAL DAY TO SECOND类型,需通过EXTRACT函数提取时间分量计算:

SELECT ROUND(
         (EXTRACT(DAY FROM time_diff)*86400 +
          EXTRACT(HOUR FROM time_diff)*3600 +
          EXTRACT(MINUTE FROM time_diff)*60 +
          EXTRACT(SECOND FROM time_diff))/60,
         2
       ) AS Time_DIFF
FROM (
  SELECT Updated_date - Created_date AS time_diff
  FROM TEMP_CPERF 
  WHERE C_ID = 12345
);

或者更简洁的方式,将TIMESTAMP转换为DATE类型后计算(会截断小数秒,若无需高精度则适用):

SELECT ROUND((CAST(Updated_date AS DATE) - CAST(Created_date AS DATE))*24*60, 2) AS Time_DIFF
FROM TEMP_CPERF 
WHERE C_ID = 12345;

内容的提问来源于stack exchange,提问作者Siva Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 04:48:33