Oracle - 从时间戳值导出分钟

Posted

技术标签:

【中文标题】Oracle - 从时间戳值导出分钟【英文标题】:Oracle - derive minutes from a Timestamp value 【发布时间】:2011-04-15 16:09:13 【问题描述】:

我有一个名为 START_DATE 的带有 Timestamp(6) 列的表。鉴于此查询:

从 MYTABLE 中选择 SYSDATE - MIN(START_DATE)

可能会返回:

0 1:12:32.2819281

我想要以分钟为单位的返回值,四舍五入到最接近的分钟,没有小数位,例如:

73

我知道如何对不聚合的查询执行此操作,方法是将 START_DATE 转换为 DATE,然后使用 ROUND,但是一旦我放入 MIN 聚合,该方法就不起作用。

谢谢!

【问题讨论】:

我前不久问过类似的问题:***.com/questions/5063214/convert-interval-to-minutes 【参考方案1】:

查看此页面上的存储过程:Oracle Timestamp Math

【讨论】:

谢谢,但是为了清晰和简洁,他确实没有通过我的测试。这意味着现在我必须将代码推送到 Oracle 中,在多个数据库中复制它,记住它在那里,告诉其他人它在那里,以某种方式记录它......有没有办法减去两个时间戳以获得它们之间的秒数在这种情况下?或者将 MIN(START_DATE) 转换为 DATE 然后执行? 将时间戳转换为日期可能会更简单; DATE - DATE 是天数及其分数,很容易转换为分钟。 TRUNC((SYSDATE - DATE_EXPRESSION) * 24 * 60)。毕竟,您并不关心当时时间戳的亚秒精度。

以上是关于Oracle - 从时间戳值导出分钟的主要内容,如果未能解决你的问题,请参考以下文章

Pandas:如何添加两个时间戳值?

从存储过程中读取时间戳值

从 Impala 中的时间戳值变量中提取日期

什么是时间戳值

Firebase 时间戳值及查询 | JavaScript

将时间戳值插入雪花表