php – Mysql时区并从一天中选择行
发布时间:2020-12-13 22:04:10 所属栏目:PHP教程 来源:网络整理
导读:我使用 MySQL DATETIME列来存储日期和时间.时间.日期为UTC.我想从一天中选择项目.我现在在做什么: SELECT * FROM data WHERE DATE(CONVERT_TZ(datetime,'UTC','Australia/Sydney')) = '2012-06-01' 请注意,时区取决于用户 问题是桌面增长很慢. 有没有解决方
我使用
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端的小时数,而是可以简单地将日期作为字符串参数传递. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |