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 - 从时间戳值导出分钟的主要内容,如果未能解决你的问题,请参考以下文章