【问题标题】:V$TRANSACTION table to find the duration of transactionsV$TRANSACTION 表查找事务的持续时间
【发布时间】:2018-03-18 16:26:11
【问题描述】:

如何使用Oracle中V$TRANSACTION表的START_TIME列查找从当前时间开始活跃超过30分钟的事务的名称?

【问题讨论】:

标签: sql oracle


【解决方案1】:

我们可以在 Oracle 中对日期进行算术运算。 Sysdate 是当前日期时间。一天有48个半小时。所以:

select * 
from V$TRANSACTION
where to_date(start_time, 'mm/dd/yyyy hh24:mi:ss') <= sysdate - (1/48)

嗯,V$TRANSACTION.start_time 使用与 sysdate 不同的格式掩码似乎有点奇怪。无论如何,您可以通过显式日期转换来避免 ORA-01843 错误。

【讨论】:

  • 当我运行这个查询时 ora-01843: not a valid month 出现错误;这是因为不同的日期时间格式,sysdate 使用 dd.mm.yyyy,而 start_time 使用 mm/dd/yyyy)。有没有办法修改其中任何一个的输出?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-18
  • 2021-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-21
相关资源
最近更新 更多