2

timestampz在 postgresql 表中有一个列,我希望检索特定时间范围内的条目

我尝试使用

SELECT * FROM table where date BETWEEN '2012-01-01' AND '2012-01-05'

但是上面的查询无法检索到一些在指定日期内的行,所以我尝试了这样的事情

SELECT * FROM table WHERE date BETWEEN '2012-01-01 00:00:00' AND '2012-01-05 23:59:59'

这很好用,但是有更好的方法来激活它吗?

4

2 回答 2

5

You can try:

SELECT * 
FROM table 
where date::DATE BETWEEN '2012-01-01'::DATE AND '2012-01-05'::DATE

SQL Fiddle

于 2012-09-15T21:28:59.477 回答
5

我认为没有更好但更清洁。

select *
from table
where 
    date >= '2012-01-01' 
    and 
    date < '2012-01-05'::date + 1

它将覆盖到 '2012-01-05 23:59:59.999999'

于 2012-09-16T00:50:45.430 回答