我在oracle中有相同的查询
select ( TRUNC(b.pub_ts, 'MI') - DATE '1970-01-01')* 24 * 60 * 60,
TRUNC(b.pub_ts, 'MI') - DATE '1970-01-01'
from abctable b where b.blurb_id=344143
oracle中查询的输出是这个
并且我在postgres中转换了查询,我想要相同的结果我怎么能得到它,我已经创建了postgres的查询,但是它给出了间隔而不是像oracle那样的十进制输出
select ( date_trunc('minute', b.pub_ts) - DATE '1970-01-01')* 24 * 60 * 60,
date_trunc('minute', b.pub_ts) - DATE '1970-01-01'
FROM abc b WHERE b.blurb_id=344143;
我尝试了很多解决方案。你能救我吗?
答案 0 :(得分:3)
我认为are是正确的,我认为它与How do I convert an interval into a number of hours with postgres?
重复如果你检查接受的答案,下面例子中唯一不同的是,我加了24分。
SELECT EXTRACT(epoch FROM INTERVAL '1499990400 days 1206720:00:00')/24/60/60,
EXTRACT(epoch FROM INTERVAL '17361 days 13:58:00')/24/60/60;
返回
1500040680和17361.581944444442
这正是您想要的值。
您的查询应该如下:
SELECT
extract( epoch FROM date_trunc('minute', b.pub_ts) - DATE '1970-01-01'),
extract( epoch FROM date_trunc('minute', b.pub_ts) - DATE '1970-01-01')/86400
FROM abc b WHERE b.blurb_id=344143;