Oracle SQL获取两个时间戳之间的天数差

Oracle SQL获取两个时间戳之间的天数差,sql,oracle,Sql,Oracle,上面是md_事件表,我需要得到事件147结束和事件148开始之间的天数差(不含时间部分)。两者都是时间戳 我已尝试过,但出现错误(与numtodsinterval相同) 此查询还返回时间部分 select dsintervaltonum(me2.start- me1.end, 'day') as days from md_events me1, md_events me2 where me1.event = 'event147' and me2.event = 'event148

上面是md_事件表,我需要得到事件147结束和事件148开始之间的天数差(不含时间部分)。两者都是时间戳

我已尝试过,但出现错误(与numtodsinterval相同)

此查询还返回时间部分

select dsintervaltonum(me2.start- me1.end, 'day') as days
  from md_events me1, md_events me2
 where me1.event  = 'event147'
   and me2.event =  'event148'

将两个时间戳转换为日期,然后直接获取它们的差异:

 select to_char(me2.start- me1.end, 'DDD') as days
      from md_events me1, md_events me2
     where me1.event  = 'event147'
       and me2.event =  'event148'

将两个时间戳转换为日期,然后直接获取它们的差异:

 select to_char(me2.start- me1.end, 'DDD') as days
      from md_events me1, md_events me2
     where me1.event  = 'event147'
       and me2.event =  'event148'

我的系统中没有Oracle。因此,我将给出一种使用SQLITE找到解决方案的方法/逻辑。使用此逻辑将SQLITE语法更改为ORACLE语法

select
    cast(me2.start as date) - cast(me1.end as date)
from md_events me1, md_events me2
where
    me1.event  = 'event147' and
    me2.event =  'event148'

我的系统中没有Oracle。因此,我将给出一种使用SQLITE找到解决方案的方法/逻辑。使用此逻辑将SQLITE语法更改为ORACLE语法

select
    cast(me2.start as date) - cast(me1.end as date)
from md_events me1, md_events me2
where
    me1.event  = 'event147' and
    me2.event =  'event148'

您也可以使用此选项:

SELECT y.start,x.endd, y.start-x.endd as diff FROM (SELECT a.* FROM NAMES AS a WHERE a.event='event147') AS x, (SELECT b.* FROM NAMES AS b WHERE b.event='event148') AS y;

您也可以使用此选项:

SELECT y.start,x.endd, y.start-x.endd as diff FROM (SELECT a.* FROM NAMES AS a WHERE a.event='event147') AS x, (SELECT b.* FROM NAMES AS b WHERE b.event='event148') AS y;