Математика дат не приводит к тем же результатам в R против Redshift - PullRequest
0 голосов
/ 26 апреля 2019

У меня проблема с использованием пакета RPostgres для подключения к Redshift.Я не уверен, что это проблема с нашей базой данных, или это известная проблема с пакетом.

Я получаю разные результаты, когда использую один и тот же точный запрос в Redshift по сравнению с его использованием в R с пакетом RPostgres.

Это полностью связано с математикой даты, как моя общая строкаподсчет совпадает, как и все остальное, когда не используются даты.

Например, это может быть запрос, который я запускаю в Redshift (используя метабазу).Если я выполню один и тот же точный запрос в R с пакетом RPostgres, я получу совершенно другие результаты.

SELECT
orders.*
FROM
orders
WHERE 
orders.date >= current_date-3
AND 
orders.date < current_date-2

Даты в метабазе имеют смысл.Это показывает только один день, три дня назад.Однако в R он показывает 2 дня.

Для целей этого примера рассмотрим дату как метку времени.

Кто-нибудь сталкивался с этим, или знает о существующей проблеме и обойти?

1 Ответ

1 голос
/ 26 апреля 2019

Обычно лучше быть абсолютно точным с датами, чтобы убедиться, что настройки сеанса непреднамеренно не влияют на запрос. Попробуйте это:

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, если ваши даты неявно хранятся в другом часовом поясе.

...