Как запросить «Вчера, в моем часовом поясе», когда все мои метки времени - UTC - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь включить в мое предложение where способ автоматического извлечения данных за предыдущий день на основе текущего часового пояса.Все мои данные хранятся с отметкой времени UTC.

Я могу изменить свою метку времени с UTC на мой часовой пояс («Америка / Чикаго») и автоматически получать данные за последние X дней;например, за предыдущую неделю, без необходимости вручную вводить дату.Но я не могу понять, как сделать то и другое одновременно в предложении where.

SELECT *  
FROM `my-data-set` 
WHERE
event_time >= CAST(DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY) AS TIMESTAMP)
AND event_time < CAST(DATE_SUB(CURRENT_DATE(), INTERVAL 0 DAY) AS TIMESTAMP)

Я бы хотел иметь возможность посмотреть на предыдущую неделю или день в моем часовом поясе, а не на предыдущий день UTC.

1 Ответ

1 голос
/ 11 июня 2019

Вы можете указать часовой пояс:

where date(event_time, 'America/Chicago') = date_add(current_date, interval -1 day)

Обратите внимание, что скобки не нужны для current_date.

Ключом к логике является преобразование метки времени UTC в дату по местному времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...