PostgreSQL查询没有时区的时间戳会返回不同的结果

时间:2018-09-08 14:10:10

标签: postgresql timestamp

为什么这些查询返回不同的结果?

查询A.1

select 
    p.name
from properties p
where p.timestamp_gmt between '2018-08-06' and '2018-08-07';

查询A.2

select 
    p.name
from properties p
where p.timestamp_gmt between DATE '2018-08-06' and DATE '2018-08-07';

这两个查询返回100条记录,耗时不到一秒钟。

查询B

select 
    p.name
from properties p
where p.timestamp_gmt >= 'Thu Sep 06 2018' and p.timestamp_gmt < 'Fri Sep 07 2018'; 

此查询返回10000条记录,耗时30分钟。

请注意,这里唯一的区别是日期比较运算符,即>=<。我不知道查询timestamp without time zone

的正确方法是什么

结果应该一样吗? A B 查询是否有根本区别?

0 个答案:

没有答案