繁体   English   中英

使用时区进行查询的最佳方法

[英]Best way to do a query with timezone

我有来自不同时区的用户,我需要改进我的查询之一:

 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 秒的结果。

我在数据库上的所有时间都是 UTC。 所以我想知道,如何使用用户时区执行 mysql 查询,让 mysql 保留我的索引。

用户可以为我的示例选择他们想要的日期,他们选择开始和结束日期

试试这个方法:

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_dateai.inspection_completed_date列都进行了索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM