3

出于测试目的,我使用两个不同的 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 中完成的查询的两倍。什么可能导致相同的查询返回不同的值?表格和内容不变。

4

1 回答 1

0

感谢 Jakub 的回复,我意识到 GUI 位于不同的时区。为了解决这个问题,我在 SquirreLSQL 中运行了以下 SQL 行来查找正确的时区:

SELECT  current_setting('TIMEZONE')

它返回“America/New_York”,因此我在 R 中运行以下行以使两个程序处于同一时区:

dbGetQuery(con, "SET TIMEZONE TO 'America/New_York'") 
于 2014-11-06T21:46:25.240 回答