php – Mysql时区并从一天中选择行

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – Mysql时区并从一天中选择行脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用 MySQL DATETIME列来存储日期和时间.时间.日期为UTC.我想从一天中选择项目.我现在在做什么:

SELECT * From data WHERE DATE(CONVERT_TZ(datetime,'UTC','Australia/Sydney')) = '2012-06-01'

请注意,时区取决于用户

问题是桌面增长很慢.
有没有解决方法如何让它更快?

解决方法

目前,您的查询必须计算数据库的每一行的转换.你可能可以通过转换相反的方式使事情变得更好,这样转换只发生一次(或实际上两次,因为你必须形成一个范围).那么适当的日期时间索引应该会让事情变得非常快.

SELECT * From data
WHERE datetime BETWEEN CONVERT_TZ('2012-06-01 00:00:00','Australia/Sydney','UTC')
                   AND CONVERT_TZ('2012-06-01 23:59:59','UTC')

或者如果你担心23:60:00闰秒没有被任何查询匹配,你可以这样做

SELECT * FROM data
WHERE datetime >= CONVERT_TZ('2012-06-01','UTC')
  AND datetime < CONVERT_TZ('2012-06-01' + INTERVAL 1 DAY,'UTC')

在后一种形式中,您不必添加PHP端的小时数,而是可以简单地将日期作为字符串参数传递.

脚本宝典总结

以上是脚本宝典为你收集整理的php – Mysql时区并从一天中选择行全部内容,希望文章能够帮你解决php – Mysql时区并从一天中选择行所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。