POSTGRES date_trunc和Between条件与HOURS和TIMESTAMPS

时间:2018-02-15 16:54:07

标签: sql postgresql sqlite

如何根据条件之间的截断小时选择值?

理论上,这就是我想要做的事情:

select * from table 
where date_trunc('hour', column1) BETWEEN '8:00' and '10:00'

我怀疑这可能是因为(a)我将时间戳与小时数进行比较,(b)我没有正确定义我的小时数。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您正在寻找extract()或类似的东西:

select *
from table 
where extract(hour from column1) in (8, 9)

或转换为time

where cast(column1 as time) >= '8:00' and
      column1::time < '10:00'

注意:这显示了两种进行转换的方法,第一种是标准方法。第二个更简洁,但Postgres特定。另外,我要离开'10:00'。这很容易重新加入。