Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 选择日期介于开始日期和结束日期之间的行_Sql_Database_Postgresql - Fatal编程技术网

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

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' 这很好,但是有没有

我在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'
这很好,但是有没有更好的方法来激活它?

您可以尝试:

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的链接,对我来说它很有效,你能给我们展示一下你的例子吗?