【发布时间】:2017-05-29 15:35:39
【问题描述】:
请告诉我,我正在复制一个我还没有找到的问题。这是我的问题。
我有一个数据库,其中所有 DateTime 列都存储在 UTC 中。我想知道我是否这样做:
select CONVERT_TZ(event.startingTime,'UTC', city.timezone) as startingTime
left join city on event.cityid = city.id
where startingTime between '2017-01-01 00:00:00' and '2017-01-01 23:59:59'
这是否适用于已处理时区的过滤器?例如,假设我有一个在 UTC 时间 23:00 开始的活动,但城市是 GMT+2。是否会列出该事件? (数据库中的“原始”数据是 23:00,所以它应该按照那个显示,但是一旦使用时区处理,就是第二天的 1:00,所以它不应该按照这个显示 )。
我做了一个测试,看起来过滤器是处理前的“原始”数据之一,我很难相信,这就是我在这里问的原因(我的mysql版本是10.0.21-MariaDB-1~气喘吁吁)
【问题讨论】:
-
让我知道这是否对你有用 :)
-
它开启了有趣的见解。我正在测试所有可能的组合,在选择和位置上有和没有时区。它在select上的未处理数据中确认它确实得到了结果。