选择开始日期和结束日期之间的日期行

Aka*_*ash 2 sql database postgresql

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

我试过用

SELECT * FROM table where date BETWEEN '2012-01-01' AND '2012-01-05'
Run Code Online (Sandbox Code Playgroud)

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

SELECT * FROM table WHERE date BETWEEN '2012-01-01 00:00:00' AND '2012-01-05 23:59:59'
Run Code Online (Sandbox Code Playgroud)

这很好,但有没有更好的方法来激活它?

Rob*_*ert 5

你可以试试:

SELECT * 
FROM table 
where date::DATE BETWEEN '2012-01-01'::DATE AND '2012-01-05'::DATE
Run Code Online (Sandbox Code Playgroud)

SQL小提琴


Clo*_*eto 5

我认为不是更好但更清洁.

select *
from table
where 
    date >= '2012-01-01' 
    and 
    date < '2012-01-05'::date + 1
Run Code Online (Sandbox Code Playgroud)

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