当前位置:  开发笔记 > 编程语言 > 正文

Oracle - 用于获取两个DateTime列之间的分钟差异的最佳SELECT语句?

如何解决《Oracle-用于获取两个DateTime列之间的分钟差异的最佳SELECT语句?》经验,为你挑选了2个好方法。

我正在尝试从客户端完成一个相当困难的报告请求,我需要找到它以在几分钟内获得两个DateTime列之间的差异.我试图使用各种格式的截断和圆形,似乎无法想出一个有意义的组合.有一种优雅的方式来做到这一点?如果没有,有没有办法做到这一点?



1> Justin Cave..:
SELECT date1 - date2
  FROM some_table

返回天数差异.乘以24得到小时差异和24*60得到分钟.所以

SELECT (date1 - date2) * 24 * 60 difference_in_minutes
  FROM some_table

应该是你正在寻找的


我不知道日期减法返回的天数.现在我知道了.
@KanagaveluSugumar - 不,你不对.如果只有`date1`和`date2`相同,那么`date1 - date2`将等于0.如果`date1`和`date2`在同一天但具有不同的时间分量,减去它们将返回一个大于0但小于1的数字.乘以`24*60`将产生几分钟的差异.

2> JosephStyons..:

默认情况下,oracle date detraction返回#天数的结果.

因此,只需乘以24即可获得小时数,并再次乘以60分钟.

例:

select
  round((second_date - first_date) * (60 * 24),2) as time_in_minutes
from
  (
  select
    to_date('01/01/2008 01:30:00 PM','mm/dd/yyyy hh:mi:ss am') as first_date
   ,to_date('01/06/2008 01:35:00 PM','mm/dd/yyyy HH:MI:SS AM') as second_date
  from
    dual
  ) test_data

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有