Oracle SQL获取两个时间戳之间的天数差
上面是md_事件表,我需要得到事件147结束和事件148开始之间的天数差(不含时间部分)。两者都是时间戳 我已尝试过,但出现错误(与numtodsinterval相同) 此查询还返回时间部分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
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;