我选择基于日期范围的行使用下面的SQL工作,但是这是一个有效的方法。正如你所看到的日期和时间是在不同的领域举行。从我的记忆中或者在你将一个函数放在一个属性周围的时候开始进行Oracle工作,它不能使用索引。Postgres结合日期和时间字段,这是有效的
select *
from events
where venue_id = '2'
and EXTRACT(EPOCH FROM (start_date + start_time))
between EXTRACT(EPOCH FROM ('2017-09-01 00:00')::timestamp)
and EXTRACT(EPOCH FROM ('2017-09-30 00:00')::timestamp)
那么有没有办法做到这一点,可以使用索引?
为什么要提取新纪元?为什么不只是'start_date + start_time BETWEEN'2017-09-01 00:00':: timestamp AND'2017-09-30 00:00':: timestamp'? – Andreas