如何在Oracle中获取纪元函数

问题描述 投票:1回答:1
select * 
from sample_table scr 
where extract('epoch' from systimestamp - scr.created_date)/60 > :defaultTimeOut

这是一个postgres查询。尝试将此查询转换为oracle。

如何在oracle中转换纪元?

TIA。

sql oracle intervals epoch
1个回答
0
投票

您实际上是试图将一个间隔(即两个日期之间的差)转换为秒数。假设created_date的数据类型为date,一种方法是:

select * 
from sample_table
where (sysdate - created_date) * 24 * 60 * 60 > :defaultTimeOut

Rationale:在Oracle中,减去两个日期将返回一个十进制数字,表示天数之间的差额。您可以将其乘以24(每天的小时数),60(每小时的分钟数)和60(每分钟的秒数)以将其转换为秒数,然后将其与目标值进行比较。

如果created_date的数据类型为timestamp,则可以先将其转换为date

select * 
from sample_table
where (sysdate - cast(created_date as date)) * 24 * 60 * 60 > :defaultTimeOut
© www.soinside.com 2019 - 2024. All rights reserved.