出于测试目的,我使用两个不同的GUI(RStudio和SquirreLSQL)从同一个数据库查询同一个表。
SquirreLSQL控制台中的查询如下所示:
select count(distinct idstr) from fact_table where date::date='2014-10-30' and (w>0 or x>0 or y>0)
在RStudio中,我有以下代码:
library(RPostgreSQL)
drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv,"databaseconnectionstring",user ="usr",password ="pwd",dbname = "db")
res <- dbSendQuery(con, "select count(distinct idstr) from fact_table where date::date='2014-10-30' and (w>0 or x>0 or y>0)")
在SquirreLSQL中完成的查询返回的行数几乎是在RStudio中完成的行的两倍。什么可能导致相同的确切查询返回不同的值?表格和内容不会改变。
答案 0 :(得分:0)
感谢Jakub的回复,我意识到GUI处于不同的时区。为了解决这个问题,我在SquirreLSQL中运行了以下SQL行来查找正确的时区:
SELECT current_setting('TIMEZONE')
它返回&#34; America / New_York&#34;,所以我在R中运行以下行以获得同一时区的两个程序:
dbGetQuery(con, "SET TIMEZONE TO 'America/New_York'")