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

如何从Oracle interval类型值中提取毫秒数?

从Oracle INTERVAL类型中提取毫秒数

要从Oracle的INTERVAL DAY TO SECOND类型值中提取四舍五入后的整数毫秒数,可通过以下方法实现:

核心方法

利用INTERVAL类型秒部分的小数位(对应微秒),提取后转换为毫秒并四舍五入。

示例SQL

针对你提供的示例值'+000000000 00:12:59.144721',执行以下语句即可得到结果145:

SELECT ROUND(MOD(EXTRACT(SECOND FROM INTERVAL '+000000000 00:12:59.144721' DAY TO SECOND), 1) * 1000) AS milliseconds
FROM dual;

分步说明

  1. EXTRACT(SECOND FROM interval_val):提取INTERVAL中的秒部分,结果包含整数和小数(示例中为59.144721)。
  2. MOD(..., 1):截取秒数的小数部分(示例中得到0.144721)。
  3. * 1000:将微秒单位转换为毫秒(示例中得到144.721)。
  4. ROUND(...):对毫秒数进行四舍五入,得到整数结果(示例中得到145)。

表字段通用查询

如果INTERVAL值存储在表字段中(例如表your_table的interval_col字段),可使用:

SELECT ROUND(MOD(EXTRACT(SECOND FROM interval_col), 1) * 1000) AS milliseconds
FROM your_table;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 04:18:16