在使用RPostgres包与Redshift连接时,我遇到了问题。我不确定这是我们的数据库设置的问题,还是包中已知的问题。
当我在Redshift中使用相同的查询,而在R中使用RPostgres包时,我得到了不同的结果。
这似乎完全是由于日期的数学,因为我的整个行计数匹配,以及其他一切,当不使用日期。
例如,这可能是我在Redshift中运行的一个查询(使用Metabase)。如果我使用RPostgres包在R中运行相同的查询,我将得到完全不同的结果。
SELECT
orders.*
FROM
orders
WHERE
orders.date >= current_date-3
AND
orders.date < current_date-2元数据库中的日期是有意义的。只显示了一天,三天前。然而,在R,它显示2天。
就本例而言,考虑日期为时间戳。
有没有人遇到过这样的问题,或者知道一个存在的问题并解决了这个问题?
发布于 2019-04-26 15:46:07
通常最好是绝对明确日期,以确保会话设置不会无意中影响查询。试试这个:
SELECT
orders.*
FROM
orders
WHERE
orders.date >= date_trunc('day', current_timestamp at time zone 'utc') - '3 days'::interval
AND
orders.date < date_trunc('day', current_timestamp at time zone 'utc') - '2 days'::interval如果日期隐式存储在不同的时区中,则可能必须从utc更改时区。
https://stackoverflow.com/questions/55869627
复制相似问题