2014-11-06 5 views
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에서 한 것입니다. 동일한 정확한 쿼리가 다른 값을 반환하게하는 원인은 무엇입니까? 테이블과 내용은 변경되지 않습니다.

+0

나는 그냥 변수를 테스트하고 – zebrainatree

+1

당신이 현재 시간에 대한 데이터베이스를 조회하려고 노력했다 있기 때문에, 날짜와 함께 할 수있는 뭔가가 생각? 시간대가 다를 수있는 유일한 장소 인 것 같습니다. –

+0

그게 전부 야 .JakubKania! 고맙습니다! – zebrainatree

답변

0

Jakub의 응답 덕분에 GUI가 다른 시간대에 있다는 것을 깨달았습니다. 이 문제를 해결하려면, 내가 올바른 시간대 찾을 SquirreLSQL에서 SQL의 다음 줄을 실행 :

SELECT current_setting('TIMEZONE') 

그것은 "미국/뉴욕을"반환을, 그래서 나는 다음의 두 가지 프로그램을 얻기 위해 R에 다음 줄을 실행 같은 시간대 :

dbGetQuery(con, "SET TIMEZONE TO 'America/New_York'")