【发布时间】:2017-06-26 19:17:57
【问题描述】:
我认为如果您向 MySQL 传递一个 Epoch 时间戳(作为一个长整数)并使用 FROM_UNIXTIME() 将其作为可比较的日期,那么服务器的时区就无关紧要了。但确实如此(至少在我们的设置中——我们需要特定的配置吗?)。
使用 MySQL 版本:mysql Ver 14.14 Distrib 5.5.48-37.8,适用于 Linux (x86_64),使用 readline 5.1
我的服务器设置为 UTC。
当我运行如下查询时:
SELECT COUNT(*) FROM Orders
WHERE startTime BETWEEN FROM_UNIXTIME(1486509895) AND FROM_UNIXTIME(1486596296);
我收到了 127 个订单。
然后我将时区切换为 EST:
sudo mv /etc/localtime /etc/localtime.bak
sudo ln -s /usr/share/zoneinfo/America/New_York /etc/localtime
sudo service mysql3306 restart
然后我再次运行查询,这次我得到了 196 个订单!
为什么我的服务器的时区会影响它?时代不应受此影响。
【问题讨论】: