如何根据条件之间的截断小时选择值?
理论上,这就是我想要做的事情:
select * from table
where date_trunc('hour', column1) BETWEEN '8:00' and '10:00'
我怀疑这可能是因为(a)我将时间戳与小时数进行比较,(b)我没有正确定义我的小时数。
我该如何解决这个问题?
答案 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'
。这很容易重新加入。