[英]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_date
和ai.inspection_completed_date
列都进行了索引。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.