Sql 选择日期介于开始日期和结束日期之间的行
我在postgresql表中有一个Sql 选择日期介于开始日期和结束日期之间的行,sql,database,postgresql,Sql,Database,Postgresql,我在postgresql表中有一个timestampz列,我希望检索特定时间范围内的条目 我试着用 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' 这很好,但是有没有
timestampz
列,我希望检索特定时间范围内的条目
我试着用
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'
这很好,但是有没有更好的方法来激活它?您可以尝试:
SELECT *
FROM table
where date::DATE BETWEEN '2012-01-01'::DATE AND '2012-01-05'::DATE
不是更好,而是更干净
select *
from table
where
date >= '2012-01-01'
and
date < '2012-01-05'::date + 1
选择*
从桌子上
哪里
日期>='2012-01-01'
及
日期<'2012-01-05':日期+1
它将覆盖到“2012-01-05 23:59:59.99999”“date>=startdate和date是的,如果我为HH:MM:SS提供了itWait,则此功能有效,您有一个名为
date
的timestamptz
类型的列?这可能与名为integer
的numeric
列一样令人困惑。在1月5日以外的日子,它甚至会覆盖闰秒(23:59:60.999999):-),你确定吗?我编辑了这篇文章,有到SQLFiddle的链接,对我来说它很有效,你能给我们展示一下你的例子吗?