Лучший способ сделать запрос с часовым поясом - PullRequest
1 голос
/ 05 августа 2020

У меня есть пользователь из другого часового пояса, и мне нужно улучшить один из моих запросов:

 WHERE DATE_ADD(pa.inspection_date, INTERVAL -39600 SECOND) >= Date( '2020-05-05')
     AND DATE_ADD(ai.inspection_completed_date, INTERVAL -39600 SECOND) <= DATE( 
           '2020-05-06') + INTERVAL 1 DAY 

В настоящее время этот запрос выполняется очень медленно (5 минут), потому что я думаю, что Date_add сломался (игнорировать) мой индекс по полю inspection_date. Если я удалю Date_add, я получу 0,2 секунды.

Все мое время в моей базе данных находится в UT C. Итак, я хотел бы знать, как я могу выполнить запрос mysql с часовым поясом пользователя и позволить mysql сохранить мой индекс.

Пользователь может выбрать дату, которую он хочет для моего примера, они выбирают дата начала и окончания

1 Ответ

0 голосов
/ 05 августа 2020

Попробуйте так:

WHERE pa.inspection_date >= (DATE('2020-05-05') + INTERVAL 11 HOUR)
  AND ai.inspection_completed_date <= DATE('2020-05-06') + INTERVAL 35 HOUR 

И проверьте, проиндексированы ли оба столбца pa.inspection_date и ai.inspection_completed_date.

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